私の店で私はisLoading:boolean値がfalseであり、サーバへのリクエストが開始され、resposeまたはエラーが発生したときにtrueに変更され、falseに戻った。私はコンテナクラスでそれを選択して、このようなプロパティとしてコンポーネントに渡す:角度2 ngrx観察可能な値
@Component({
template: `<some-component [isLoading]="isLoading"></some-component>`
})
class SomeContainer() {
private isLoading: Observable<boolean>;
constructor(private store: Store<IStore>) {
this.isLoading = store.select(isLoadingSelector);
}
}
そして、私はいくつかの条件付きコンテンツのためにそれを使用したいと思います:
class SomeComponent {
@Input() private isLoading: Observable<boolean>;
...
}
<div>
<span *ngIf="isLoading">Loading</span>
<span *ngIf="!isLoading">Some data</span>
</div>
しかしisLoadingが観察され、私が取得する必要がありますこのロジックの予想される作業のブール値。
private ngOnInit():void {
this.isLoading.subscribe((value) => this.isLoadingBoolean = value);
}
とテンプレートでisLoadingBoolean使用:私が見つけた解決策は、次のようにクラスの値を取得しています。
しかし、それは難解です。この問題を解決する良い方法はありますか(おそらくasync
パイプを* ngIfと併用する方法です)?
あなたは '* ngIf ="!(isLoading | async) "'を試しましたか? – chrigu