【发布时间】:2015-12-18 20:06:47
【问题描述】:
编辑:看起来我现在的主要问题是我似乎无法显示来自对象的异步数据。我有一个包含数据对象的承诺,当我使用时
{{ data | async }}
它会显示
[object Object]
问题是,我希望能够显示所有不同的属性;即名称、符号等。在 Angular 1 中,我只会使用
{{ data.Name | async }}
但这在这里不起作用,因为异步管道试图解析不存在的 data.Name 承诺。我想解决数据承诺,然后从中显示名称键。目前,我正在创建自己的管道以显示来自异步对象的键,但我想知道是否有内置的 Angular 2 管道或函数来处理这个问题!
我创建了一个 StockService 类,它返回一个包含对象的 Promise 到我的 StockInfo 类,其中包含要显示的 HTML。我想在我的 HTML 中显示该对象的名称,但似乎无法显示。
在我的 StockInfo 构造函数中:
this.stock.getStockData(this.ticker, http).then(function(val) {
this.data = val;
this.name = new Promise<string>(function(resolve) {
resolve(this.data.Name);
});
});
其中 this.stock 是 StockService 对象。
在我的 HTML 中:
<h2>{{name | async}}</h2>
在确定这一点之前,我尝试了许多不同的安排。我希望 StockService 类处理数据获取和 StockInfo 类处理显示。在 Angular 1 中,我会创建一个工厂来获取数据并处理控制器中的数据处理,但我不太确定如何在 Angular 2 中进行此操作。
有没有办法让它显示,或者有没有更好的方法来设计我应该研究的代码?谢谢!
【问题讨论】:
-
您是否尝试过使用
{{ (data | async).Name }}或{{ (data | async)['Name'] }}? -
你为什么要把
this.name变成一个promise而不是写this.name = this.data.name?或者这只是一个人为的例子? -
@Pylinux 我想这是一个人为的例子,允许minimal reproducible example。
标签: asynchronous angular