2015-10-07 3 views
0

Я пытаюсь широко использовать от 1 контроллера и следить за этой переменной на другом контроллере и ожидать некоторых изменений на втором контроллере. Но это не работает.Широковещательная передача и не работает по желанию

Ниже приведен первый код контроллера

$scope.gotoKBPage = function() 
     { 
     $location.path('/kb'); 
     $rootScope.$broadcast('newVar',{id: "123"}); 
     }; 

Ниже есть второй контроллер код, который страница/кБ

$scope.newPage = function() 
    { 
     $scope.pernotes  = true; // this makes a section visible, but not happening 
    }; 

    $rootScope.$on('newVar', function(event, data) 
    { 
    if(data) 
    { 
     $scope.newPage(); 
    } 
    }); 

ли что-нибудь мне нужно сделать явно для того чтобы этот эффект.

+0

с какой проблемой вы столкнулись? – Ved

+0

@ved - значение области не изменяется. – Hacker

+0

Вы говорите о $ scope.newPage ('id', data.id) ;? – Ved

ответ

1

Попробуйте это:

$scope.newPage = function() 
    { 
     $scope.$apply(); 
     $scope.pernotes  = true; // this makes a section visible, but not happening 
    } 

EDIT: я испытал. Он должен работать без $ apply тоже. Проверьте эту ссылку: fiddle

+0

Его всегда видно – Hacker

+0

Теперь посмотри. Обновлено. – Ved

+0

Ваш фид не совсем то же самое, вы опускаете '$ location.path()' и делаете все в одном контроллере, который, я думаю, является важной частью проблемы. – jjimenez

-2

Я думаю, вы используете неправильный подход. Если вы хотите передать параметр новому контроллеру, почему бы не использовать параметр маршрута? См. Пример в конце этого documentation page

Обратите внимание, что в вашем коде вы регистрируете $on после того, как вы передали сообщение, поэтому оно не будет работать.

+0

$ on работает. Но в $ на я пытаюсь изменить переменные области, которые не работают – Hacker

+0

$ on правильно зарегистрирован. И я не понимаю, как могут возникнуть проблемы с маршрутизаторами? – Elo

+0

Возможно, я пропустил вопрос, но, как я понимаю, он хочет перенаправить пользователя на новый вид и передать значение его контроллеру. Это правильно? Параметр маршрута, на мой взгляд, лучший выбор для этого. – jjimenez

Смежные вопросы