Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将事件从一个单独的控制器提取到另一个页面控制器?_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript 如何将事件从一个单独的控制器提取到另一个页面控制器?

Javascript 如何将事件从一个单独的控制器提取到另一个页面控制器?,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我们已尝试使用此代码将广播事件从一个页面控制器提取到另一个页面控制器 Controller1.js scope.createList = function() { scope.$broadcast("event: list updated", true); } Controller2.js scope.$on("event: list updated", function(value) { console.log('event update")

我们已尝试使用此代码将广播事件从一个页面控制器提取到另一个页面控制器

Controller1.js
    scope.createList = function() {
        scope.$broadcast("event: list updated", true);
    }

Controller2.js
   scope.$on("event: list updated", function(value) {
      console.log('event update");
   });
此方法在一个页面控制器中工作,但不在单独的js控制器中工作。controller1.js如何通知controller2.js?

$broadcast方法为所有子作用域发出事件,因此侦听器控制器应该在其中。您可以在$rootScope上进行广播,而不是在scope上进行广播,这样每个scope都可以捕获事件

.controller("Controller1", function ($scope, $rootScope) {
    $scope.createList = function() {
        $rootScope.$broadcast("event: list updated", true);
    }
})

您可以使用服务/提供商共享数据