我对Resolver
的{{1}}感到困惑。解析器为我解决的问题是在渲染时组件中存在对象。如果我在没有Resolvers的情况下执行它并通过Promise开始在组件的构造函数中获取对象,则访问模板中的嵌套属性,如
routes
如果Promise没有及早解决,可能会导致错误,这很可能是在需要完成http请求时。但是,从Resolver接收已解析对象的小信息告诉我在组件的构造函数中这样做
{{myObj.foo.bar}}
这和以前不一样吗?好吧,我承认,后端请求已经完成,我会立即收到订阅。不过,我再次异步访问已解析的数据。在模板渲染中可以访问{{myObj.foo.bar}}的可能性非常高,但是没有保证,不是吗?
我不知道我是否认为过于批评。直觉上使用this.route.data.subscribe(val => {...});
并将已解析的对象设置为服务,然后可以由任何组件同步访问,这是一种直觉,但更接近我的意图。
期待澄清
答案 0 :(得分:2)
将您需要访问myObj
*ngIf
的整个模板或部分包裹在其中:
<ng-container *ngIf="myObj?.foo">
{{myObj.foo.bar}}
</ng-container>