は、私が観測可能に加入し、コールバックに私はresult
の値にステータスを設定しました。これは、ビューの* ngIfで使用されます。真実が返されても、ビューは更新されません。ビューが更新されないのはなぜですか?あなたが見ることができるように、以下のコードで
export class AppComponent {
private status;
constructor (private proxyService: ProxyService) {
}
ngOnInit(){
//setInterval(()=>console.log(this.isInjected),1000);
this.proxyService.someObservable.subscribe((result)=>{
this.status = result;
console.log(result);
});
}
}
ここで、コメント行が表示される場合があります。デバッグ中に私はそれを追加しました。変わったことはビューを更新することです。なぜどんなアイデア?参考のため
は、それが私の見解です:
<div *ngIf="status">
<app-userlane-inject></app-userlane-inject>
</div>
<div *ngIf="!status">
<span>Status is false.</span>
</div>
{{status}}
子コンポーネントがレンダリングされることはありませんし、文字列の補間は偽のまま場合でも、コンソールログ(間隔がある場合、それは作品を除く)真。ここで
サービスは広い意味で何をするかです:
var mySubject= new BehaviorSubject(false);
@Injectable()
export class ProxyService {
public someObservable= mySubject.asObservable();
//Kinda deep callback tree, then finally
mySubject.next(true)
}
あなたは 'varは私=これを必要としません;'。 'this.status = result;'を使用してください。 –
'ProxyService'とは何ですか?いくつかのコードを共有できますか? –
console.log(result)の出力は何ですか? –