2

我对Resolvers for有点困惑routes。Resolvers 为我解决的问题是渲染时组件中存在对象。如果我在没有解析器的情况下执行此操作并开始通过 Promise 在组件的构造函数中获取对象,则在模板中访问其嵌套属性,例如

{{myObj.foo.bar}}

如果 Promise 没有足够早地解决,可能会导致错误,这很可能在需要完成 http 请求时。但是,关于从解析器接收已解析对象的小信息告诉我在组件的构造函数中这样做

this.route.data.subscribe(val => {...});

这和以前不一样吗?好的,我承认,后端请求已经完成,我很快就会收到订阅。不过,我再次异步访问解析的数据。{{myObj.foo.bar}} 很有可能在模板渲染时可以访问,但不能保证,不是吗?

我不知道我是否认为这太关键了。这是一种直觉,使用canActivate路由并将解析的对象设置为服务,反过来,任何组件都可以同步访问它更接近我的意图。

期待澄清

4

1 回答 1

2

包装整个模板或您需要访问myObj的部分*ngIf

<ng-container *ngIf="myObj?.foo">
  {{myObj.foo.bar}}
</ng-container>
于 2016-09-27T10:46:49.317 回答