0
我有一個控制器執行一些數據庫調用,並相應地將內容加載到我的$scope
中。一切都很完美。當調用完成後,我會在回調中的控制器中運行一些JS來調整我的應用程序的高度和其他屬性。不幸的是,我在多個控制器中運行這個JS。在AngularJS中,如何在控制器內部調用指令來執行任務?
我想將腳本放入指令中,以便我可以在控制器回調中運行指令,並且只讓JS活在一個位置。除了這是「正確的方式」之外,它將使保養更容易。
我有一個控制器執行一些數據庫調用,並相應地將內容加載到我的$scope
中。一切都很完美。當調用完成後,我會在回調中的控制器中運行一些JS來調整我的應用程序的高度和其他屬性。不幸的是,我在多個控制器中運行這個JS。在AngularJS中,如何在控制器內部調用指令來執行任務?
我想將腳本放入指令中,以便我可以在控制器回調中運行指令,並且只讓JS活在一個位置。除了這是「正確的方式」之外,它將使保養更容易。
在幾個控制器之間共享代碼時,。從AngularJS文檔
示例代碼:
angular.
module('myServiceModule', []).
controller('MyController', ['$scope','notify', function ($scope, notify) {
$scope.callNotify = function(msg) {
notify(msg);
};
}]).
factory('notify', ['$window', function(win) {
var msgs = [];
return function(msg) {
msgs.push(msg);
if (msgs.length == 3) {
win.alert(msgs.join("\n"));
msgs = [];
}
};
}]);
指令是用於在HTML使用,而不是用於控制器內的腳本。
我會將其應用到我的腳本中,看看它是如何工作的。 – dcp3450
沒有任何代碼或詳細的解釋,很難收集你想要的最終結果。我的一部分人說你想要一個工廠而不是一個指令來達到這個目的,所以我可以在控制器回調中運行指令......這不是指令的功能。 – PlantTheIdea
我沒有任何代碼,因爲這是一個普遍的問題。通常(比如在php和js中)我只需要在腳本結尾處調用一個名爲'adjustSizes()'的函數。 – dcp3450
如何在控制器端發出一個事件(可能在根作用域?)並在指令上處理它? – smnbbrv