おそらくあなたは、あなたのコンポーネントでそれを購読する観測可能&からのストリームを作ることができ、これ毎回それはあなたのコンポーネントがそれに応じて値を更新します変更:
import { Injectable } from '@angular/core';
import {Subject} from 'rxjs/Subject';
@Injectable()
export class ViewToggleService {
leftVisible:boolean=true;
// Observable boolean source
private leftVisibleSource = new Subject<boolean>();
// Observable boolean stream
leftVisibleStream$=this.leftVisibleSource.asObservable();
constructor(){
}
// service command
toggleView(viewName:string){
if(viewName.toString()==='leftVisible'){
this.leftVisible=!this.leftVisible;
this.leftVisibleSource.next(this.leftVisible);
}
}
}
、あなたのルートレベルにこのサービスを注入した後、あなたのコンポーネントの中では、このストリームを次のように購読することができます:
public leftVisible: boolean;
subscriptionLeftVisible: Subscription;
ngOnInit() {
this.subscriptionLeftVisible = this._viewToggleService.leftVisibleStream$.subscribe(leftVisible => {
this.leftVisible = leftVisible;
});
}
希望します。
変更を渡す必要があります。ダイナミックコンポーネントを購読可能な場所に観測値を渡して、変更を通知することができます。 –
もしあなたが手動でアップデートすることができるならば、 'changeSelection'メソッドの最後に' this.componentRef.instance.selection = this.selection; 'を入れてください。 – lbrahim
ありがとう@Ibrahim、この例では動作しますが、varが他のコンポーネントで変更されることがあるので、私はそれを行うことはできません。 – ChristianGH