Значение не обновляется внутри $ watch - PullRequest
0 голосов
/ 11 февраля 2019

Я внедряю $ состояние следующим образом:

 constructor(private $state: ng.ui.IStateService, private $scope: any) {}

У меня есть значение $state, для полной загрузки которого требуется несколько микросекунд.После этого я хочу выполнить функцию, но значение в $state не обновляется в $watch:

public $onInit() {
    console.log(this.$state.current.name);
    this.$scope.$watch(name, () => {
        console.log(this.$state.current.name);
        // call function
    });
    setTimeout(() => {
        console.log(this.$state.current.name);
    }, 500);
}

Вывод:

панель инструментов.tasks.overview.details

dashboard.tasks.overview.details

dashboard.tasks.overview.details.information

Как вы можете видеть значение дляthis.$state.current.name одинаковы в onInit и $watch, хотя $watch обнаруживает изменение значения name.На setTimeout значение изменяется.

...