0
コンポーネントからサービスコンストラクタに値を渡そうとしています。 paramを渡そうとしているオブジェクト。 私のコードは次のとおりです。コンストラクタからサービスにパラメータを渡す方法
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);
});
}
でなければなりません。しかし、私は2つのコンポーネントを提供することができ、サービスを持っていますが、それは扱うことができ、ほんの1つのconfの –
によって異なるが、 'datatopass'が何であるかに依存します。一般に、 'setData(datatopass)'メソッドとすることができます。しかし、問題は、サービスがそれが属するインジェクタ内のシングルトンであり、2つの構成要素に同時に「データパス」を設定することは、予期せぬ結果につながることである。問題は「SmartTablesService」で本質的に何が起こるかを明確にするはずです。 – estus
私の投稿を更新しました。必要な値はparamです。 1つのコンポーネントはそれを真とし、それ以外の偽を必要とします。 2つのコンポーネントは同じページではありません.2コンポーネントはfirebaseリストを更新します。 –