路由器外部(组件)外的角度2访问标签

时间:2017-03-09 11:18:50

标签: angular angular2-routing

在我的角度2项目中,当加载应用程序并显示第一个组件时,我可以单击固定按钮以显示菜单。但如果我去另一条路线尝试点击按钮,则没有任何反应。问题是,按钮点击事件在jquery文件中描述,我在组件初始化之后加载 - $ .getScript(' assets / js / app.js',function(){});因为我将jquery网站移植到有角度的地方。 我的导航栏标记位于视图上方的路由器外部上方。这可能是原因吗?我觉得在查看页面更改后,父DOM不可见。

app的结构:

<navbar></navbar>
    <router-outlet></router-outlet>
<pageFooter></pageFooter>

主页组件:

ngAfterViewInit() {
...
      $.getScript('assets/js/app.js', function(){});
}

我还试图直接操纵和导航来自孩子,使用jQuery简单地添加课程,但它并没有发生。

有什么建议吗?

3 个答案:

答案 0 :(得分:0)

您需要创建一个&#34;服务&#34;在子组件和父组件之间进行通信。

我在这里回答了类似的问题: Angular 2 - Using RXJS Observables

如果您需要任何帮助,请在评论中提问:)

答案 1 :(得分:0)

基本上,就目前而言,我通过在组件视图中放置navbar标签来解决它。我知道它不是最好的解决方案,需要在每个组件中加入navbar标签,但它有效。但希望有更好的方法。我不知道如何使用服务来使我的navbar组件操纵DOM。

答案 2 :(得分:0)

如果您在编译时知道组件(标记)的类型,则可以将其注入:

constructor(private navBar:NavBarComponent) {}

这将注入该类型的最接近的祖先组件。