<div ng-controller="ParentCtrl"> //父級
<div ng-controller="SelfCtrl"> //自己
<a ng-click="click()">click me</a>
<div ng-controller="ChildCtrl"></div> //子級
</div>
<div ng-controller="BroCtrl"></div> //平級
</div>
phonecatControllers.controller('SelfCtrl', function($scope) {
$scope.click = function () {
$scope.$broadcast('to-child', 'child');
$scope.$emit('to-parent', 'parent');
}
});
phonecatControllers.controller('ParentCtrl', function($scope) {
$scope.$on('to-parent', function(d,data) {
console.log(data); //父級能得到值
});
$scope.$on('to-child', function(d,data) {
console.log(data); //子級得不到值
});
});
phonecatControllers.controller('ChildCtrl', function($scope){
$scope.$on('to-child', function(d,data) {
console.log(data); //子級能得到值
});
$scope.$on('to-parent', function(d,data) {
console.log(data); //父級得不到值
});
});
phonecatControllers.controller('BroCtrl', function($scope){
$scope.$on('to-parent', function(d,data) {
console.log(data); //平級得不到值
});
$scope.$on('to-child', function(d,data) {
console.log(data); //平級得不到值
});
});
用$broadcast賦的值,只能子級能得到值,父級得不到,用$emit賦的值,只能父級得到值,子級得不到。平級都得不到值