2017-08-01 37 views
1

我有它获取在ngAfterViewInit()角4成分:从另一个文件

//myComponent.ts 
ngAfterViewInit() { 
    $(function() { 
    $('#myElement').click(function (e) { 
     //code working fine here 
    }); 
} 

执行一个jquery代码调用JavaScript/jQuery代码,但我想将其移动到外部myScripts.js简化部件

我试着将代码移动到一个外部文件,然后使用import,但这使得脚本只被调用一次,所以如果我导航到一个子组件(这将删除HTML元素myElementonclick定义),然后回到父母myElement回来了w^ithout onclick事件

所以问题是:

什么是最好的做法是使用jquery/JavaScript和angular4

回答

0

您需要将功能从myScripts.ts导出,然后import它并调用它在ngAfterViewInit()之内。

正确出口后,你应该能够做到:

// app.ts 
import { myInitFunc } from './myScripts'; 

ngAfterViewInit() { 
    myInitFunc(); 
} 

// myScripts.ts 
export function myInitFunc(): void { 
    $(function() { 
    $('#myElement').click(function (e) { 
     //do stuff 
    }); 
    } 
}; 

export看看:https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export

+0

对不起我的问题可能有误导你了,上面的代码写的'typescript'在一个角度4分量 –