पर निर्भर करता:
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);
})
}
}]);
यहाँ दूसरे नियंत्रक
myApp.controller('ExcelViewCtrl', ['$scope', '$http', function($scope, $http) {
$scope.$on("SET_EXCEL_TITLES", function (event, excelCols) {
//this event is never fired
$scope.ExcelCols = excelCols;
});
}]);
मेरा विचार है कि जिस तरह से डिजाइन किया गया है कंट्रोलर को $broadcast
संदेश पर संरचित wrt कैसे रूट किया जाएगा।
प्रति documentation
के रूप में श्रोताओं पर सभी बच्चे स्कोप (और उनके बच्चों) पंजीकृत एनजी को अधिसूचित करने के लिए नीचे की ओर एक घटना नाम डिस्पैच। $ RootScope.Scope # $।
इसका मतलब है कि प्रसारण भेजने वाले नियंत्रक को बाल नियंत्रक एचटीएमएल के मूल एचटीएमएल पर परिभाषित किया जाना चाहिए।
अपनी एचटीएमएल संरचना के आधार पर, $rootScope.$broadcast
का उपयोग करें। $rootScope
को MapCtrl
में इंजेक्ट करें और उस पर $broadcast
विधि को कॉल करें।
नियंत्रक कैसे तत्काल हैं? 'ExcelViewCtrl' और' MapCtrl' के दायरे के बच्चे हैं? '$ प्रसारण' और' $ emit' के बीच का अंतर देखें। –
शायद मैं उस बिंदु को गलत समझा। मुझे लगता है कि माता-पिता को एक संदेश भेजने के लिए $ emit का उपयोग किया जाता है, और प्रत्येक नियंत्रक –