我在工作中遇到了同样的问题。我试过很多东西,但最后我使用的服务:
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