Mục tiêu của tôi là gửi một số dữ liệu từ bộ điều khiển góc tới bộ điều khiển góc khác.Góc, phát sóng không hoạt động
Dưới đây là bộ điều khiển ai phải gửi các datas:
myApp.controller('MapCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.loadData = function() {
$http.get('/map/GetListDB').success(function (data, status, headers, config) {
//Logic here is working fine, it creates a table named "ExcelCols" which is a table of strings
$scope.$broadcast("SET_EXCEL_TITLES", $scope.ExcelCols);
})
}
}]);
Dưới đây là bộ điều khiển thứ hai
myApp.controller('ExcelViewCtrl', ['$scope', '$http', function($scope, $http) {
$scope.$on("SET_EXCEL_TITLES", function (event, excelCols) {
//this event is never fired
$scope.ExcelCols = excelCols;
});
}]);
Quan điểm của tôi được thiết kế theo cách đó:
<body ng-app="myApp">
<div ng-controller="MapCtrl">
//everything OK here
</div>
<div ng-controller="ExcelViewCtrl">
<table>
<thead>
<tr>
<th ng-repeat="col in ExcelCols">{{col}}</th>
</tr>
</thead>
</table>
</div>
</body>
Trình điều khiển được khởi tạo như thế nào? Có phải 'ExcelViewCtrl' và phạm vi con của nó là' MapCtrl'? Xem sự khác biệt giữa '$ broadcast' và' $ emit'. –
Có lẽ tôi đã hiểu lầm điểm đó. Tôi nghĩ rằng $ emit được sử dụng để gửi một tin nhắn cho phụ huynh, và phát sóng được sử dụng để gửi một cái gì đó cho mọi bộ điều khiển –