如下code, test01Controller控制器中的的变量可以$emit到父控制器(mainController)中,父控制器也可以$on监听到事件,但是,父控制器中$boardcast事件时,子控制器却不可以$on监听到事件。
controller.js
angular.module('mainApp', ['ngRoute']).config([ '$routeProvider', function($routeProvider) { $routeProvider.when('/test01', { templateUrl : 'test01.html', controller: 'test01Controller' }).when('/test01Result', { templateUrl : 'test01Result.html', controller: 'test01ResultController' }).otherwise({ redirectTo : '/grid' }); } ]);html
<!DOCTYPE html> <html> <head> ... </head> <body ng-app="mainApp" ng-controller="mainController"> <div ng-view></div> </body> </html>
https://stackoverflow.com/questions/30664821/unable-to-broadcast-event-from-parent-controller-in-angularjs
在父控制器中,给广播事件函数,使用$timeout() 方法,延迟300ms 发出广播;这时子控制器,应该加载完成,可以监听到父控制器中的广播事件