我目前正在更新DOM中的值时遇到问题。angular2 - ngIf值未在DOM中更新
为了快速解释并尽可能简单,我目前有两个组件(A和B)。 B,从A继承,用A的视图作为模板,而且注入其模板到A(NG-内容),因此B的观点是这样的:
<A>
<template>
<div *ngFor="let item of items" (click)="selected($event, item)">
<span>{{item.name}}<span>
</div>
</template>
</A>
和A的观点是这样的:
<ng-content select="template"></ng-content>
<div *ngIf="searching">Hey I'm looking for answer</div>
<div *ngIf="!searching">I already have my answer</div>
组件B仅一个私有变量,它是项目的数组和A的分量也具有单一的B称为具体方法是:
private searching: boolean = true;
selected(event, value: any): void {
event.stopPropagation();
this.searching = false; // This.searching is updated in component but not in DOM
this.selectedItem = value; // BUT this.selectedItem is updated in component AND in DOM !!
}
更改this.selectedItem工作,但this.searching不会因此不仅是“是”由于搜索总是TRUE,因此显示。
这里是plunkr。
有人能够赐教吗?谢谢。
你为什么使用event.stopPropagation(); ? – distante
你可以发布整个html和组件代码吗? –
以下是plunkr:https://plnkr.co/edit/DP7K5Q63kEqXmQbRA98I?p=preview – NPanda