我有一个可观察对象,它是这样填充的:
this._mySubscription = this._myService.getSomething(id)
.subscribe(
response => this._myData = response,
error => this.displayError(<any>error),
() => this.stopLoading()
);
我可以使用 Elvis 操作符在 HTML 标记中访问它的属性,就像这样:
{{_myData?.PropertyNameHere}}
但是我应该如何使用TypeScript在组件中访问相同的属性呢?
这会在该属性下产生红色的波浪线:
this._myData.PropertyNameHere
并说:
Observable上不存在该属性
更新:服务调用示例
getSomething(id: string): Observable<any> {
let params = 'id=' + id;
return this._http
.post(apiUrl + 'SomeController/SomeAction', params, {withCredentials: true, headers: this.headers})
.timeoutWith(maxTimeHttpCalls, Observable.defer(() => Observable.throw(this._feedbackService.timeout())))
.map((response: Response) => response.json().data.Items);
}
getSomething
方法吗? - Dave Vthis._myData
。你可能已经将其设置为 Observable,例如private _myData:Observable;
,但它应该是any
或某个与服务器响应中的 Items 属性匹配的接口类型。 - Katana314private _myData: Observable<any>;
。将它更改为any
后就可以使用了。谢谢您! - Glenn Utter