請幫我解答我的問題。當我從父控制器調用並捕獲子控制器時,爲什麼不工作函數$ broadcast?
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script>
<script>
var app = angular.module('app', []);
app.controller('ctrl1',
function ($scope) {
$scope.$broadcast('parent', 'Some data');
});
app.controller('ctrl2',
function ($scope) {
$scope.$on('parent', function (event, data) {
console.log(data); // 'Some data'
});
});
</script>
</head>
<body>
<div ng-controller="ctrl1">
<div ng-controller="ctrl2">
</div>
</div>
</body>
</html>
這對我來說非常有用。謝謝! – Maksim
有一個問題。爲什麼發射必須在最後一行?如果移動$發出高於$ scope。$就不行了。 – Maksim
@ DK3基本上,當孩子控制器準備好時,首先要做一個'emit',然後從父母收聽,然後再使用它進行廣播。這是絕對不實際和不好的做法。這導致了兩次傳播。這是不必要的。 –