4

每当我使用异步管道时,我都会收到控制台错误。

   <component *ngFor="#c of columns | async" [column]="c"></component>

我收到此控制台错误:

例外:[columns | 中管道“AsyncPipe”的参数“[object Object]”无效 Projects@1:51 中的异步] browser_adapter.js:76 例外:[columns | 中管道“AsyncPipe”的参数“[object Object]”无效 项目中的异步@1:51]

有什么遗漏吗?

4

1 回答 1

4

columns属性必须是可观察的或承诺(不是数组或其他东西。请参阅Angular2(AsyncPipe类)的源代码中的这一行:https ://github.com/angular/angular/blob/master/modules/angular2 /src/common/pipes/async_pipe.ts#L109

例如,在 HTTP 调用的情况下,您需要columns直接使用返回的 observable 设置属性。将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);

希望它可以帮助你,蒂埃里

于 2016-01-09T13:51:03.200 回答