對於routes
,我與Resolver
有點混淆。 Resolvers爲我解決的問題是渲染時組件中存在一個對象。如果我這樣做,沒有旋轉變壓器,並開始通過無極組件的構造函數獲取對象,訪問其嵌套屬性在模板中像在Angular2中對已解析的數據進行異步訪問
{{myObj.foo.bar}}
可能導致一個錯誤,如果承諾不能解決夠早,這是非常有可能當一個http請求需要完成時。然而,有關從解析器接收解析對象的小信息告訴我,做這樣的組件的構造
this.route.data.subscribe(val => {...});
這難道不相同的sh * T像以前一樣?好吧,我承認,後端請求已經完成,我很快就會收到訂閱。不過,我再次異步訪問已解析的數據。 {{myObj.foo.bar}}在模板渲染時可能有很高的可能性,但是沒有保證,不是嗎?
我不知道我是否看得太重要。這是一種直覺,使用canActivate
作爲路由,並將解析對象設置爲一個服務,然後,任何組件都可以同時訪問這個服務,這些服務接近我的意圖。
期待澄清
有沒有保證什麼時候會到來,只要使用安全檢查'MyObj中包含.foo .bar',當這個值最終到達那裏時,它會重新渲染。 –
這就是我想要避免的。使用數十個「?」運營商在我的模板中。而且,運算符意味着對象是可選的。但是,在用戶的個人資料頁面上,他的電話號碼可能是可選的,但用戶對象不是可選的,它是強制性的。 – Matt