我在工作中遇到了同樣的問題。我試過很多東西,但最後我使用的服務:
var data = {
'foo': 'bar'
}
export const StateData = {
data: data
};
所以,現在在我的組件的頂部,我可以導入服務:
import { StateData } from '/services/StateService.ts';
然後我可以設置和獲取來自數據通過簡單地做服務:
StateData.data.foo = "something other than bar"
現在,當你切換路由,可以構造函數()或afterViewInit()方法中檢索新更新的數據。
*另外一個使用的StateService是,你可以通過簡單地將下面的方法綁定所有組件之間數據的獎金(你可以命名爲任何):
getStateData(key) {
return StateData.data[key];
}
您甚至可以從該方法DOM本身通過執行以下操作:
{{getStateData('foo')}} --> will print out the value "bar"
現在,如果你在不同的組件的服務內改變foo的值,它會在DOM每當發生變化,改變服務,因爲getStateData()被調用只在頁面加載時加載一次。
我相信init和afterViewInit方法是爲什麼他們沒有添加解析到新路由器,或者他們還沒有發佈它的版本。
我希望這可以幫助你。我不認爲使用Angular 1.x + Angular 2.0會很容易,也不會很有趣lol
我最近在angular 2.0中重建了我的個人網站。代碼是公開的,所以你可以檢查出來。如果您查看contactCard.ts,contact-card.html和StateService.ts,您可以看到它在運行。這裏是回購:
https://github.com/YashYash/portfolio
您的新遺蹟關鍵是可見的回購,不知道這是否應該是公開的:) – Boris