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

时间:2015-05-13 06:39:30

标签: 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
})

    });

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

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

        $rootScope.$broadcast("func_call", { myParam: {} });
    });

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

调用根控制器功能

1 个答案:

答案 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: {} });