因此,我在html中循环一个项目列表,并设置一个调用函数以返回true或false,以便应用相应的类,如果列表中的任何项目匹配,我还设置一个变量。
我将这个变量用于另一个元素,作为*ngIf。现在,在最初加载模板之前,此变量为false。之后,组件初始化并呈现html。现在,我有一个循环的项目列表,我在那里调用一个函数,它将该变量设置为true,但以ngIf为条件的元素不可见。
我认为这是因为当组件完全初始化时,变量值为false,然后当html呈现时,变量值更改为true。但是angular并没有检测到这个变化,因为它已经渲染了那个元素,也没有得到任何变化事件来监视变量。
这是我的html
<div *ngIf="someVariable">
some content
</div>
<div *ngFor="let item of items">
<div [ngClass]="{isItemMatched(item) : my-class}"></div>
</div>
这是我的组件
somevariable = false
isItemMatched(item) {
forLoop() {
if(true) {
this.someVariable = true
return true
}
}
}
是否有任何方法可以触发角度变化检测,如在单击事件或其他事件中,以便angular可以更新视图?