【问题标题】:Angular handle property which can be number or observable<number>角度句柄属性,可以是 number 或 observable<number>
【发布时间】:2017-09-22 23:30:53
【问题描述】:

我创建了一个接口,该接口带有一个可以返回数字或observable&lt;number&gt; (number|observable&lt;number&gt;) 的方法。现在的问题是我想在模板中显示方法的值,但我不知道该怎么做。 问题是,如果返回值是可观察的但使用返回值编号,我需要异步管道,我不需要管道。任何想法如何在模板文件中处理?

【问题讨论】:

  • 如果返回值是可观察的,我需要异步管道
  • 1.将propertyX 放在组件上,2. 添加另一个methodX,如果返回类型为number,将直接更新propertyX,或者订阅observable,并在其成功回调中更新propertyX。将propertyX 绑定到模板
  • 我也有这个想法,但这不起作用,因为如果属性是一个数字,它只会设置一次。想法是该方法从数组返回长度。如果我向数组中添加一个项目,该方法应该返回新的长度。

标签: angular typescript


【解决方案1】:

您可以将返回的数字包装到方法中的Observable 中。喜欢:

if(value instanceof Observable) {
  return value;
}
return Observable.of(value);

现在你的方法总是返回一个Observable,你可以使用async管道。

另一种方法是创建一个执行相同操作的 getter。

【讨论】:

  • 这就是我要做的。万物皆可观!但它也确实使实现更加直接。
猜你喜欢
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多