バックエンドが正しく更新されているにもかかわらず、ngClassでビューを更新するのが困難です。私のコントローラは以下の通りです:角度2 ngClassがビュー上で更新されない
@Component({
selector: 'show-hide-table',
template: '
<table>
<thead>
<tr>
<th (click)="toggleHidden()">
<div>Show/Hide</div>
</th>
<th [ngClass]="{\'hidden\':isHidden}">
<div>Div is Shown</div>
</th>
</tr>
</thead>
</table>',
styleUrls: ['show-hide-table.component.css']
})
export class ShowHideTable implements OnInit, OnChanges, DoCheck {
public isHidden: boolean = false;
public toggleHidden() {
this.isHidden = !this.isHidden;
this.log.debug('Hidden', this.isHidden);
}
ngOnChanges(changes: {[propKey: string]: SimpleChange}) {
this.log.debug('Grid Changes');
}
ngDoCheck() {
this.log.debug('Grid Check');
}
}
「隠し」は表示付きのCSSクラスです。私がデフォルトでtrueに設定されている場合、ヘッダーは非表示になり、falseの場合は表示されるので、クラスが動作していると思います。私は尋ねるために簡略化しましたが、これは私のコードを正確に反映しているはずです。ヘッダーをクリックすると、isHidden変数の切り替えを示すログが表示されますが、非表示のクラスは変更されていません。また、クリック可能なヘッダーをクリックすると、ngOnChangesもngDoCheckも起動しません。
ああ、私のテンプレートは実際にはテンプレートファイル内にあるので、エスケープする文字列はありませんが、ここで正しいです。そのミスを取り除くために投稿を編集します。 –