我在我在每個頁面上加載的網站中的頁腳部分中爲AngularJS做出了指示。在內部,我添加了一些需要在頁面加載後運行的jQuery代碼 - 這是我可以想到的唯一解決方案。下面是它的外觀的例子:從AngularJS指令中的文件運行JavaScript代碼
app.directive('footer', function() {
return {
restrict: 'A',
replace: true,
scope: {user: '='},
templateUrl: "PATH_TO_HTML_FILE",
controller: ['$scope', '$filter', function ($scope, $filter) {
// Some random jQuery goes here, for example:
$('.search-nav > a').on('click', function(){
$('.search-drop-down').slideDown();
});
// Close Search form
function closeSearchField() {
$('.search-drop-down').slideUp();
}
}]
};
});
我不知道這是做的最好的方式,但我想現在做的就是在控制器此jQuery代碼出在一個單獨的文件。原因是:我們一起工作的front-enders根本不知道AngularJS甚至沒有提到指令等等,所以我只想擁有一個單獨的文件,其中包含所有在頁面加載時運行的jQuery代碼,以便他們可以編輯它們需要。一旦指令本身被加載,我只想得到文件的內容並在上面的控制器中運行它。任何想法如何做到這一點?甚至更好的解決整個問題?
您的網站是[SPA](https://en.wikipedia.org/wiki/Single-page_application)(即:它是否重新加載每個視圖更改或不)?如果是 - 你想在每個視圖更改上執行這個* jquery代碼*還是隻執行一次?如果它不是一個SPA,爲什麼不把這個腳本包含在標題中? – fracz
這是一個SPA網站。我想在每次更改時執行一些代碼,其中一部分不是。這一切實際上取決於我是否在視圖中具有指令,這就是爲什麼我正在尋找一種方法來將指令特定的代碼放置在單獨的空間中,而這些空間只能由非角度開發人員訪問和理解,他們只處理html,js和css。 – mmvsbg