Когда я добавляю $ broadcast в $ rootScope и перехватываю его другому контроллеру, он не отражает никакого значения для просмотра. Пример:
// on first ctrl.
controller('firstCtrl', ['$scope','$location', '$rootScope', function($scope, $location, $rootScope) {
$scope.myFunc = function() {
$rootScope.$broadcast('someEvent');
$location.path('/users');
}
}])
// On Users Page.
.controller('usersCtrl', ['$scope','$rootScope', function($scope, $rootScope) {
$scope.dataFilter = {};
$rootScope.$on('someEvent', function(event, b) {
$scope.callOnBroadcast();
});
// call this function on broadcast.
$scope.callOnBroadcast = function() {
$scope.dataFilter = {
types: [
{key: 'tags', val: 'Collections'},
{key: 'prices', val: 'Price'},
{key: 'ratings', val: 'Rating'},
{key: 'designers',val: 'Designer'}
],
data: {tags: [], prices: [], ratings: [], designers: []}
};
$scope.$apply();
};
}])
<h4 data-ng-repeat="ftr in dataFilter.types">
{{ftr.val}}
</h4>
Когда я использую MyFunc
функцию firstCtrl
, он будет перенаправлять меня на страницу пользователя, также транслировалась функции запуска. На странице пользователя, я использую $scope.callOnBroadcast()
, когда широковещание включено, но оно отражает любые изменения на странице просмотра, даже я использую $scope.$apply()
. Где я ошибаюсь?
сделать '$ rootScope $ широковещательный ('someEvent');' если иерархия контроллер не there..Please добавить HTML чтобы увидеть, как иерархия вашего контроллера –
не является иерархией контроллеров, поэтому я добавил $ broadcast в $ rootScope. – Rajeev
О, извините, его копия ошибка пасты. Я уже использую $ broadcast в $ roootScope. – Rajeev