我遇到的问题似乎是Angular路由器重新加载<router-outlet></router-outlet>
中的组件并导致意外结果。有没有人对如何解决这个问题有任何想法?
Plunker链接:https://plnkr.co/edit/yRCzbsxE0ftzqrDeRT69?p=preview
编辑:我如何更改它,以便在链接'one'和'two'之间交替时不重新初始化变量
答案 0 :(得分:0)
根据您的代码,此结果是正确的。
第一次加载时
attachment = json.dumps([
{
"fallback": "Reddit Message",
"color": "#448aff",
"pretext":"You've got a new Message!",
"author_name": "Reddit",
"author_link": "https://reddit.com",
....
}
])
sc.api_call(
"chat.postMessage", channel="U64KWRJAU",
attachments=attachment, as_user=True)
将 fromParent 设置为默认值并初始化cousin组件。
constructor() {
this.fromParent = 'default'
}
让我们按照这种情况看看角度对它的反应如何:
click1 =&gt;到/ a的角度路由,但是父组件已经存在,所以不需要再次重新加载,所以它在第一次点击时正常运行。
click2 =&gt;角度路由到/ 2,路径改变,因此角度重新加载父组件,因此它重新加载所有应用程序并将所有变量重置为默认
当路由到某个组件时,angular初始化此组件,在您的情况下,您的父组件再次重新初始化,这意味着重新初始化表兄弟组件。