Подождите, пока данные состояния не будут завершены - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть директива MenuTabsComponent:

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

Проблема заключается в том, что этот код выполняется до того, как станут доступны все данные о состоянии.Если я запускаю код без setTimeout, $state.name не правильно.

dashboard.tasks.overview.details

dashboard.tasks.overview.details.information

Но setTimeout не является правильным решением.Как мне дождаться, когда станут доступны данные о состоянии?

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете присвоить state.name переменной и использовать $ scope. $ Watch для обнаружения изменения.

$scope.name = this.$state.current.name;

$scope.$watch(name, function (newValue, oldValue) {

});

вы также можете проверить oldValue, чтобы увидеть, является ли оно пустым, и выполнить код только тогда, когдаoldValue является нулевым для выполнения вашей функции один раз.

$scope.$watch(name, function (newValue, oldValue) {
    if(oldValue == null){
        //execute your function
    } 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...