当我在Angular2中使用异步管道时,我遇到了一个问题。
这里有一些代码:
这是模板
<li *ngFor="#obj of _filtersPageState | async">
hello world
</li>
_filtersPageState
变量声明为:
private _filtersPageState: Observable<any> = new Observable<any>();
并利用select
函数@ngrx/store
对其进行初始化。
this._filtersPageState = store.select('FiltersPageState');
this._filtersPageState.subscribe(v => console.log(v));
存储中的FiltersPageState
对象是通过http请求填充的,如果我在控制台日志中打印@ngrx/store
对象,我可以看到get请求是正确执行的。
这里的问题是,当async
管道放置在ngFor
中时,组件无法加载,并且在console中没有错误。
如果我在html模板中写入{{_filtersPageState.value | async}}
,则Observable
的值将正确显示。
我在玩贝塔13
有什么线索或建议吗?谢谢!
编辑
我注意到,如果在模板中编写{{_filtersPageState| async}}
,同时编写ngFor
(甚至在没有async
管道的简单数组上执行此循环),组件就会中断(静默)。
编辑2
我想在拼图中再加一块瓷砖。
以下模板破坏了组件:
{{_filtersPageState | async}}
<li *ngFor="#obj of simpleArray">
{{obj}}
</li>
就像async
和ngFor
不想在一起一样:
编辑3
我发现在ngFor中没有管道在工作:
<h1 *ngFor="#element of filtersPageState|async">{{element}}</h1>
<h1 *ngFor="#element of simpleArray|uppercase">{{element}}</h1>
<h1 *ngFor="#element of simpleArray">{{element|uppercase}}</h1>
<h1 *ngFor="#element of simpleArray|aaaaaaaaa">{{element}}</h1>
在所有四种情况下(也使用不存在的管道aaaaaaaaa
),我的组件没有错误地加载。
发布于 2016-04-06 17:57:51
我解决了问题。
我包括在棱角2的小型化版本中,一旦我加入了angular2.dev.js,一切都开始工作了。
谢谢
https://stackoverflow.com/questions/36433672
复制相似问题