从Angular 2中的组件代码访问模板中异步管道的结果

lox*_*lox 5 observable rxjs angular2-template angular2-pipe angular

在Angular 2中,我有一个带有模板的组件。

在组件TypeScript代码中,我创建了一个Reactive Extensions Observable(items$),并在ngFor带有异步管道的模板的-directive中使用它。

这样,我不必担心自己订阅和取消订阅。

<div *ngFor="let item of items$ | async"></div>
...
</div>
Run Code Online (Sandbox Code Playgroud)

现在,从组件代码中,我想访问项目列表,但不订阅它。模板是否有办法退还或引用项目列表?

Piz*_*ato 7

您可以在组件中执行此操作:

items$.pipe(tap(items => this.items = items);
Run Code Online (Sandbox Code Playgroud)

这样,您不订阅流,并且可以继续使用异步管道,但是如果发出新值,它将保存在items变量中。