Angular 2 - 路由器重新加载组件

时间:2017-07-09 11:14:28

标签: angular

我遇到的问题似乎是Angular路由器重新加载<router-outlet></router-outlet>中的组件并导致意外结果。有没有人对如何解决这个问题有任何想法?

Plunker链接:https://plnkr.co/edit/yRCzbsxE0ftzqrDeRT69?p=preview

编辑:我如何更改它,以便在链接'one'和'two'之间交替时不重新初始化变量

1 个答案:

答案 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初始化此组件,在您的情况下,您的父组件再次重​​新初始化,这意味着重新初始化表兄弟组件。