【发布时间】:2018-01-30 02:35:31
【问题描述】:
假设我的 HTML 中有这个:
<div>
<mat-label>Matched events count: {{(getMatchedEventsCount() | async)?}}</mat-label>
</div>
<div>
<mat-label>Total events count: {{(getTotalEventsCount() | async)?}}</mat-label>
</div>
我的问题是,我从这些辅助方法返回什么(就 Observable 而言)?
getMatchedEventsCount(){
return Observable.of(3);
}
getTotalEventsCount(){
return Observable.of(5);
}
但我的问题是 - 我们如何才能做一些真正异步的事情?
目前,我收到了这个 HTML 解析错误:
未捕获的错误:模板解析错误:解析器错误:意外结束 表达式:匹配事件计数:{{(getMatchedEventsCount() | async)?}} 在表达式末尾 [Matched events count: {{(getMatchedEventsCount() | async)?}}] 在 ng:///AppModule/EventsListComponent.html@40:21 (" [错误->]匹配事件计数:{{(getMatchedEventsCount() | async)?}} "): ng:///AppModule/EventsListComponent.html@40:21 解析器错误:条件表达式 (getMatchedEventsCount() | async)? 要求表达式末尾的所有 3 个表达式 [Matched 事件计数:{{(getMatchedEventsCount() | async)?}}] in ng:///AppModule/EventsListComponent.html@40:21 (" [错误->]匹配事件计数:{{(getMatchedEventsCount() | async)?}} "): ng:///AppModule/EventsListComponent.html@40:21
【问题讨论】:
-
这种方式不能使用
?;在?之后,您必须进行财产访问。尝试删除? -
模板解析错误与方法的返回无关。无论返回的结果如何,它都是一样的。与其他编译时间与运行时错误的区别相同..
-
好的,我会尝试删除
?字符 -
是的,它看起来有效,你能添加一个答案并解释为什么会这样吗?
-
另外,在你的回答中,如果你能解释如何使用订阅而不是 Obersvable 来加载数据,那也很有用......
标签: angular observable rxjs5