Значение устанавливается в $ onInit, но не определено в функции - PullRequest
0 голосов
/ 22 марта 2019

У меня есть ссылка, которая ведет к маршрутизатору:

ui-sref="dashboard.tasks.overview.details.information({ id: activity.task.id, showTaskDetailView: true })"

По этой ссылке я передаю параметр showTaskDetail: true маршрутизатору.

В файле routeconfig у меня есть:

.state('dashboard.tasks.overview.details', {
....
    params: {
        showTaskDetailView: null,
    },
    onEnter: [
        '$stateParams',
        'TaskOverviewService',
        (
            $stateParams: any,
            taskOverviewService: TaskOverviewService
        ) => {
            taskOverviewService.setDisplayTaskDetailView($stateParams.showTaskDetailView);
            taskOverviewService.select($stateParams.id);
        }
    ],

Когда маршрут введен, он вызывает функцию setDisplayTaskDetailView в TaskOverviewService: "

public setDisplayTaskDetailView(showTaskDetailView: boolean) {
    showTaskDetailView$.onNext(showTaskDetailView);
}

Это толкает логический showTaskDetailView в потоке.

В navigation-component у меня есть:

public $onInit() {
    this.observeTaskUpdates();

    this.showTaskDetailViewObserver = showTaskDetailView$.subscribe(value => {
        this.toggleValue = value;
        console.log(this.toggleValue)
    });
}

public setValue() {
    console.log(this.toggleValue);
}

onInit возвращает true при переходе по ссылке вверху этого сообщения.

В шаблоне, связанномк этому компоненту у меня есть ng-if="vm.setValue()"

Но это возвращает this.toggleValue как undefined.

Я добавил count члена класса public count = 0 и добавил 1 кзначение в onInit

 this.count = + 1;
 console.log(this.count);

Это показывает 1

Но в setValue() функция console.log(this.count); возвращает 0

Таким образом, похоже, что значенияустанавливается в другом экземпляре компонента, но компонент используется только один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...