Логическое значение не задано, но находится в контроллере - PullRequest
0 голосов
/ 01 февраля 2019

В моем модуле TaskHandler у меня есть TaskOverviewController.ts:

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

private observeTaskUpdates(): void {
    showTaskDetailView$
        .subscribe(value => {
            this.showTaskDetailView = value
            console.log('value', value);
            console.log('this.showTaskDetailView', this.showTaskDetailView)
        });
}

Этот TaskOverviewController связан с TaskOverview.html:

<div id="grid-container" class="dashboard-container" ng-controller="TaskOverviewController as vm">
    ShowTaskDetailView: {{vm.showTaskDetailView}}
    <div id="main" ng-if="vm.showTaskDetailView">
        show if true
    </div>
</div>

В другом модуле CustomerService У меня есть ActivityTimelineItemComponent.ts:

public showDetailTaskView() {
    showTaskDetailView$.onNext(true)
}

Когда я запускаю функцию showDetailTaskView() на ActivityTimelineItem.html, я перенаправляюсь на другую страницу,

<div >
     <i
        ng-click="vm.showDetailTaskView()"
        ui-sref="dashboard.tasks.overview.details.information({ id: activity.task.id})"
        >reply</i
     >
</div>

И это включеноконсоль:

TaskOverviewController.ts: 31 значение true

TaskOverviewController.ts: 32 this.showTaskDetailView true

TaskOverviewController.ts: 31 значение true

TaskOverviewController.ts: 32 this.showTaskDetailView true

Но элемент #main не отображается в DOM.И ShowTaskDetailView: {{vm.ShowTaskDetailView}} также не показывает установленное значение контроллера.

Я пытался обернуть .subscribe в TaskOverviewController в тайм-аут, но это тоже не сработало.Так почему мой контроллер показывает, что значение showTaskDetailView равно true, но мой DOM не показывает ng-if="vm.ShowTaskDetailView"

...