从另一个Service调用AngularJs控制器方法

Tea*_*eam 5 angularjs angularjs-directive angularjs-scope

我有一个通用控制器,这个控制器包含一个方法.我需要从另一个服务调用这个控制器方法.可能吗.

我的示例代码:这是我Root Controller和它的包含函数调用myFunction

    app.controller('rootController', function($rootScope,$scope,$on) {  

    $scope.$on("func_call", function(event, args) {
    var p = args.myParam;
    // do something
})

    });
Run Code Online (Sandbox Code Playgroud)

这是我的服务,从这个服务我需要在根控制器中调用该函数

 app.factory('anotherService', function($rootScope,$broadcast){

        $rootScope.$broadcast("func_call", { myParam: {} });
    });
Run Code Online (Sandbox Code Playgroud)

我试图从服务调用根控制器功能,$rootScope.myFunction ("called")但它无法正常工作.任何人请建议更好的方式从服务调用根控制器功能

sva*_*rog 2

你总是可以使用$broadcast,$emit$on

尝试查看$rootScope 文档

在控制器中设置接收函数监听器:

$scope.$on("func_call", function(event, args) {
    var p = args.myParam;
    // do something
})
Run Code Online (Sandbox Code Playgroud)

并在您的服务中调用它:

$rootScope.$broadcast("func_call", { myParam: {} });
Run Code Online (Sandbox Code Playgroud)