Angular2 中解析数据的异步访问

Asynchronous access to resolved data in Angular2

我对 routesResolver 有点困惑。 Resolvers 为我解决的问题是在渲染时组件中存在一个对象。如果我在没有 Resolver 的情况下这样做,并开始通过 Promise 在组件的构造函数中获取对象,访问它在模板中的嵌套属性,如

{{myObj.foo.bar}}

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

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

这不是和以前一样吗?好吧,我承认,后台请求已经完成了,我马上就可以收到订阅了。尽管如此,我再次异步访问已解析的数据。 {{myObj.foo.bar}} 在模板渲染时可访问的可能性非常高,但没有保证,不是吗?

我不知道我是否觉得这太挑剔了。这是一种直觉,使用 canActivate 作为路由并将已解析的对象设置为服务,而服务又可以被任何组件同步访问,这更接近我的意图。

期待澄清

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

<ng-container *ngIf="myObj?.foo">
  {{myObj.foo.bar}}
</ng-container>