目前我有一个这样的工厂方法:
open_model: function(som_id){
var modelSettings = $aside({
controller: // a very big controller code
size: 'sm',
placement: 'right',
templateUrl: 'views/id/modal.html',
resolve: {
modal_data: function(){
return area_id;
}
}
});
},
我想将 Controller 从这个方法中分离出来,并通过名称调用它。目前在 Controller 部分有超过 100 行代码,因此它使工厂变脏。那么有没有一种方法可以在其他地方定义 Controller ,并通过名称调用 Controller 而不是编写代码。
最佳答案
除了@nikjohn 的回答之外,您还可以创建一个单独的 Angular Controller 并在您的 modelSettings
中引用它。由于您已经说过您的模态 Controller 代码超过 100 行,这甚至可能是更好的解决方案。
angular.module('myApp').controller('ModalInstanceCtrl', ['$scope', 'modal_data', function($scope, modal_data) {
// modal controller code goes here
}]);
// and refer it in your factory method
open_model: function(som_id){
var modelSettings = $aside({
controller: 'ModalInstanceCtrl'
size: 'sm',
placement: 'right',
templateUrl: 'views/id/modal.html',
resolve: {
modal_data: function(){
return area_id;
}
}
});
}
关于angularjs - 在工厂方法中调用 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40859057/