gpt4 book ai didi

javascript - 如何将 Controller 注入(inject)到服务中?

转载 作者:太空宇宙 更新时间:2023-11-04 16:20:44 25 4
gpt4 key购买 nike

通常服务被注入(inject)到 Controller 中。

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();

});

但是可以反过来吗?将 Controller 注入(inject)服务?

最佳答案

直接的答案是否定的。您不会将 Controller 注入(inject)到服务或其他任何地方。真正的问题是你为什么要这样做?

//更新

假设您指的是https://material.angularjs.org/latest/api/service/ $mdDialog.mdDialog 服务需要一个 Controller 函数,您可以向它传递一个函数的引用。

示例:

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
})
})

关于javascript - 如何将 Controller 注入(inject)到服务中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40673051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com