angular - 演示组件输入不响应可观察的切换?
问题描述
我在这个演示中有两个组件。将ViewComponent
observable 分配给isSelectedBookInCollection$
detail 组件,如下所示:
template: `<bc-book-detail
[book]="book"
[inCollection]="isSelectedBookInCollection$ | async"
(add)="toggleCollection()"
(remove)="toggleCollection()"></bc-book-detail>`,
当我单击addBookToCollection
按钮时,isSelectedBookInCollection$
observable 会以正确的值触发,但细节组件的@input
.
这是一个 stackblitz 演示:
https://stackblitz.com/edit/angular-temp-slice-demo?file=src%2Fapp%2Fbooks%2Fview-book.component.ts
方法:
toggleCollection() {
this.bookCollection.toggle(this.book);
this.isSelectedBookInCollection$.subscribe(v=>console.log(v));
}
是什么切换isSelectedBookInCollection$
可以在控制台中看到的。
任何人都知道为什么输入[inCollection]
输入没有被更新?
Stackblitz 与答案
https://stackblitz.com/edit/angular-temp-slice-demo-phase2?file=src/app/books/view-book.component.ts
解决方案
根据您的代码isSelectedBookInCollection$
,只有在获得新值(正在监听 not 的变化)时才会获得activeBook$
新值。bookStore
BookCollection
推荐阅读
- c - Use typedef struct in another file in C
- sql - 按月聚合 BigQuery 中的数据
- python - 模型构建函数没有返回有效的 Keras Model 实例,找到了 tensorflow.python.keras.engine.sequential.Sequential 对象
- laravel - Vue JS 返回“未授权”的 Laravel Sanctum SPA(多身份验证)身份验证问题
- templates - 如何在不单击项目的情况下显示菜单项的内容
- java - 为什么我的 java 变量说并保持“评估”?
- html - 字体大小与 Div 高度相同
- python - Pycharm、pygame 球弹跳程序
- python - 语言更改后的Django-cms admin url 404
- javascript - 为什么我的变量在模板中未定义?