$emit + $on / $broadcast + $on在AngularJS中不起作用

sczxawaw  于 2022-11-21  发布在  Angular
关注(0)|答案(1)|浏览(168)

我需要在AngularJS中调用另一个控制器中的函数。这怎么可能呢?我使用了下面的代码,但它不工作。

员工控制

routerApp.controller('EmployeeController', function ($scope, $rootScope) {
        $rootScope.$on("CallSearchtMethod", function (searchName) {
            $scope.parentmethod(searchName);
        });
        $scope.parentmethod = function (searchName) {
            console.log("data is" + searchName);
        }
    }
})

导航控制

routerApp.controller('navCtrl', function ($scope,$rootScope ) {    
   $scope.searchFun = function (searchName) {
      $rootScope.$emit("CallSearchtMethod", searchName);
    }
})
holgip5t

holgip5t1#

你应该使用Service。它所做的是允许你创建将在许多地方使用的公共函数,在本例中是控制器。
下面是一个示例代码片段,它将指导您执行该服务。
第一个

相关问题