我有一个通用控制器,这个控制器包含一个方法.我需要从另一个服务调用这个控制器方法.可能吗.
我的示例代码:
这是我的根控制器及其包含函数myFunction
app.controller('rootController',function($rootScope,$scope,$on) { $scope.$on("func_call",function(event,args) { var p = args.myParam; // do something }) });
app.factory('anotherService',$broadcast){ $rootScope.$broadcast("func_call",{ myParam: {} }); });
我试图从服务$rootScope.myFunction(“被叫”)调用根控制器功能,但它无法正常工作.任何人请建议更好的方式从服务调用根控制器功能
解决方法
你总是可以使用$broadcast,$emit和$on
尝试越过$rootScope docs
在控制器中设置接收函数监听器:
$scope.$on("func_call",args) { var p = args.myParam; // do something })
并在您的服务中调用它:
$rootScope.$broadcast("func_call",{ myParam: {} });