首页 文章

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

提问于
浏览
0

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

应用程序结构:

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

家庭组件:

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

我还尝试直接操作和导航来自child,使用jQuery简单地添加类,但它不会发生 .

有什么建议吗?

3 回答

  • 0

    您需要创建一个“服务”来在子组件和父组件之间进行通信 .

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

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

  • 0

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

  • 0

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

    constructor(private navBar:NavBarComponent) {}
    

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

相关问题