在Angular 2中,我有一个带模板的组件。
在组件TypeScript代码中,我创建一个Reactive Extensions Observable(items$
)并在模板中的ngFor
- 指令中使用它与异步管道。
这样我就不必担心订阅和取消订阅。
<div *ngFor="let item of items$ | async"></div>
...
</div>
现在从组件代码我想访问项目列表,但没有订阅它。是否有一种方法可以从模板中移回项目列表的副本或引用?
答案 0 :(得分:0)
从Angular 4+开始,您可以使用as
的特殊语法(也适用于*ngIf
):
<div *ngFor="let item of items$ | async as items"></div>
{{ items.length }} ...
</div>
答案 1 :(得分:0)
您可以在组件中执行以下操作:
items$.pipe(tap(items => this.items = items);
这样,您无需订阅流,可以继续使用异步管道,但是如果将新值iit保存在items
变量中。