0
我试图从组件传递一些值给服务构造函数。 我试图传递参数的对象。 我的代码是:如何将参数传递给构造函数的服务
constructor(public af: AngularFire, public userData: UserData ,param: boolean) {
this.smartTableData = this.af.database.list('events/' + this.userData.user.uid + '/contacts',{
preserveSnapshot: param, //this param should be taken from component
query: {
orderByChild: 'tableNumber'
}
});
和我的组件:
import {LocalDataSource} from 'ng2-smart-table';
@Component({
selector: 'basic-tables',
encapsulation: ViewEncapsulation.None,
styles: [require('./smartTables.scss')],
template: require('./smartTables.html')
})
export class SmartTables {
constructor(protected service: SmartTablesService) {
this.service.smartTableData.subscribe((data) => {
console.log(data);
this.source.load(data);
});
}
但我服务,只能由一个的conf –
它可以处理取决于什么'datatopass'是这样的发球2个组件,但不同的。通常它可以是'setData(datatopass)'方法。但问题在于,服务是属于它的注入器中的单例,并且将'datatopass'设置为两个组件同时会导致不可预知的结果。这个问题应该澄清'SmartTablesService'中发生的事情。 – estus
我更新我的帖子,需要的值是param它只是布尔值。一个组件需要它作为true和其他false。 2个组件不相同的页面。2组件更新Firebase列表。 –