2015-06-29 26 views
0

我有一個控制器執行一些數據庫調用,並相應地將內容加載到我的$scope中。一切都很完美。當調用完成後,我會在回調中的控制器中運行一些JS來調整我的應用程序的高度和其他屬性。不幸的是,我在多個控制器中運行這個JS。在AngularJS中,如何在控制器內部調用指令來執行任務?

我想將腳本放入指令中,以便我可以在控制器回調中運行指令,並且只讓JS活在一個位置。除了這是「正確的方式」之外,它將使保養更容易。

+1

沒有任何代碼或詳細的解釋,很難收集你想要的最終結果。我的一部分人說你想要一個工廠而不是一個指令來達到這個目的,所以我可以在控制器回調中運行指令......這不是指令的功能。 – PlantTheIdea

+0

我沒有任何代碼,因爲這是一個普遍的問題。通常(比如在php和js中)我只需要在腳本結尾處調用一個名爲'adjustSizes()'的函數。 – dcp3450

+0

如何在控制器端發出一個事件(可能在根作用域?)並在指令上處理它? – smnbbrv

回答

1

在幾個控制器之間共享代碼時,​​。從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使用,而不是用於控制器內的腳本。

+0

我會將其應用到我的腳本中,看看它是如何工作的。 – dcp3450

相關問題