每当我使用异步管道时,我都会遇到控制台错误。
<component *ngFor="#c of columns | async" [column]="c"></component>
我收到此控制台错误:
异常:无效的参数&#39; [object Object]&#39; for pipe&#39; AsyncPipe&#39;在[列| Projects @ 1:51中的异步] browser_adapter.js:76 EXCEPTION:无效的参数&#39; [object Object]&#39; for pipe&#39; AsyncPipe&#39;在[列|在Projects @ 1:51中实现异步
有什么遗失吗?
答案 0 :(得分:4)
columns
属性必须是observable或promise(不是数组或其他内容。请参阅Angular2(AsyncPipe
类)源代码中的这一行:https://github.com/angular/angular/blob/master/modules/angular2/src/common/pipes/async_pipe.ts#L109。
例如,在HTTP调用的情况下,您需要直接使用返回的observable设置columns
属性。 async
将负责处理它,即调用其subscribe
方法,将其处理掉。这是一个示例:
this.columns =
this.http.get('https://angular2.apispark.net/v1/companies/', {
headers: headers
}).map(res => res.json());
而不是从您自己管理的订阅方法中设置`columns属性:
this.http.get('https://angular2.apispark.net/v1/companies/', {
headers: headers
})
.map(res => res.json())
.subscribe(data => this.columns = data);
希望它可以帮到你, 亨利