当我更改视图时,Angular2不会加载外部js文件

时间:2017-04-24 11:22:38

标签: javascript angular angular2-routing

我还在学习Angular 2,所以我可能在这里做错了。我有一个HTML / CSS模板,我正在尝试使用Angular 2.我创建了一个包含很少组件的Angular2项目......

在app.component.html中的

我有我的菜单



<ul class="clearfix">
     <li><a [routerLink]="['/']">Home</a></li>
     <li><a [routerLink]="['/link1']">Link1</a></li>
     <li><a [routerLink]="['/link2']">Link2</a> </li>
</ul>
&#13;
&#13;
&#13;

当我点击菜单中的一个项目时,它会将视图更改为我所创建的组件,例如当我单击Link1时,它会显示我在index.html中的link1组件(link1.component.html)的视图/ p>

&#13;
&#13;
<app-root>Loading...</app-root> 
&#13;
&#13;
&#13;

并且我已经加载了所有的CSS和JS文件,所以这里的问题当我点击菜单上的视图更改但Angular2不加载在index.html中加载的Javascript时它只会在我直接放置时执行此操作链接。

更清楚的是,如果我把直接链接放在浏览器localhost:4200 / link1中脚本加载,我可以看到动画或我在index.html中加载的任何东西,并在link1.component中调用.html但如果我在家并点击菜单中的链接1,则视图会发生变化,但动画或提醒......不起作用。

我在控制台和index.html中没有收到任何错误我只加载这两个脚本

&#13;
&#13;
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
<script type="text/javascript" src="/assets/js/site.min.js"></script>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您可以在其中一个生命周期钩子中运行jquery。

不确定哪个最好 - 您需要阅读文档并查看哪个符合您的需求。

也许在ngAfterViewChecked之后。

https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html

export class Link1 implements ngAfterViewChecked {
    ngAfterViewChecked() {
        buildTree(){
    $('#FicheName_detailContent').height($('#NAMEsearch').height());
    if ($('#tvFicheName') != null) {
        $("#t_Search").val('');
        var isFull = $("ck_FullOrPartiell").checked;
        BuildTreeViewNAME($('#tvFicheName'), '', isFull, null);
     }
   }
}

(话虽如此 - 你很有可能在没有jquery的情况下构建视图  角。)

  • 原谅格式化 - 在ipad上狡猾