通常,服务是在控制器中注入的。
controller.js
angular
.module('myApp')
.factory('myService', function($http){
var myService = {
get: get
};
return myService;
function get(){
// Get function.
}
});
service.js
angular
.module('myApp')
.controller('myController', function(myService) {
myService.get();
});
但是有可能扭转局面吗?将控制器注入服务?
答案 0 :(得分:1)
直接答案是否。您不会将控制器注入服务或其他任何地方。真正的问题是你为什么要这样做?
//更新
假设您指的是https://material.angularjs.org/latest/api/service/ $ mdDialog。
mdDialog
服务需要一个控制器函数,你可以传递一个对函数的引用。
示例:
angular.module('app',[])
.factory('myService', function(){
return {
myMdDialogCtrl: function($scope, $mdDialog, items){
// Controller for MD Dialog
}
}
})
.controller('ctrl1', function($scope, $mdDialog, myService){
$mdDialog.show({
...
controller: myService.myMdDialogCtrl
})
})
.controller('ctrl2', function($scope, $mdDialog, myService){
$mdDialog.show({
...
controller: myService.myMdDialogCtrl
})
})