我有一个通用控制器,这个控制器包含一个方法。我需要从另一个服务调用这个控制器方法。可能吗。
我的示例代码:
这是我的Root Controller
及其包含的函数myFunction
app.controller('rootController', function($rootScope,$scope,$on) {
$scope.$on("func_call", function(event, args) {
var p = args.myParam;
// do something
})
});
这是我的服务,我需要在根控制器中调用该函数
app.factory('anotherService', function($rootScope,$broadcast){
$rootScope.$broadcast("func_call", { myParam: {} });
});
我尝试从服务$rootScope.myFunction ("called")
调用根控制器功能,但它无效。请任何人建议更好的方法从服务
答案 0 :(得分:1)
您始终可以使用$broadcast
,$emit
和$on
尝试越过$rootScope docs
在控制器中设置接收函数侦听器:
$scope.$on("func_call", function(event, args) {
var p = args.myParam;
// do something
})
并在您的服务中调用它:
$rootScope.$broadcast("func_call", { myParam: {} });