2017-08-01 53 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分量 –