布尔值未在视图中设置,但在控制器中

时间:2019-02-01 11:24:02

标签: angularjs asynchronous observable

在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"

0 个答案:

没有答案