Цикл Angular Digest выполняется, но значение ng-bind не обновляется

У меня есть родительское представление, которое содержит панель навигации, и внутри этого представления у меня есть<div ui-view> элемент, который делает все, что я смотрю на ребенка.

Я хочу условно показать / скрыть панель навигации в родительском представлении, основываясь на маршруте дочернего представления. Прямо сейчас у меня есть это:

<nav ng-show="!vm.hideNavbar">

Когда мое приложение загружается в первый раз,vm.hideNavbar установлен в true, и это работает как ожидалось.

Послеvm.hideNavbar изменено на false, связанное значение не обновляется. Это все ещеtrue.

Каждый контроллер в моем приложении расширяет этоBaseController:

export class BaseController {
        public hideNavbar: boolean;

        constructor(public $scope: IBaseScope, private $state: ng.ui.IStateService) {
            if ($state.current.url === '/login') {
                this.hideNavbar = true;
            } else {
                this.hideNavbar = false;
            }
            $scope.vm = this;
        }
 }

Таким образом, каждый раз, когда загружается новый контроллер, он вызывает конструктор дляBaseController и условно устанавливает$scope.vm.hideNavbar, Если я сразу бегу$scope.$apply() в конце этого конструктора выдает ошибки углового выброса, говоря, что цикл дайджеста уже запущен.

Итак, цикл дайджеста выполняется, но значение, на мой взгляд, не обновляется. Моя единственная мысль состоит в том, что я создал несколько экземпляровBaseController так как мой первоначальный контроллер и контроллер, по которому я перемещался, расширяют этот контроллер. Итак, теперь моя связанная ценностьvm.hideNavbar все еще смотрит на старый контроллер.

Я на правильном пути с этим? Как я могу решить эту проблему?

Ответы на вопрос(1)

Ваш ответ на вопрос