以以下ngIf
为条件:
ms-aside.component.html
<div *ngIf="showFilters">
...
<input type="checkbox" checked="" />
<input type="checkbox" checked="checked" />
<input type="checkbox" checked="checked" />
...
</div>
每当showFilters
变量更改为 fassy 值时,我的输入 checked 值状态都会丢失。与之类似,当我将showFilters
变量重新分配为真实值时,选中的值将重置为无。
任何人都可以阐明原因,以及如何解决此问题吗?
答案 0 :(得分:3)
原因实际上很简单:具有980
的元素的子代将从DOM中删除。
因此,无论何时将sum(int_price) / len(int_price)
更改为*ngIf === false
,输入都会被删除。当您将其更改为showFilters
时,新实例将添加到DOM中。
要解决此问题,您将必须控制它们,即将选中状态的值存储在组件中,并将其绑定到输入。
答案 1 :(得分:3)
使用* ngIf时,如果条件为false,则将从DOM中删除以下元素。如果要保留状态,[隐藏]可能对您有用,因为它只是隐藏元素,而不是从DOM中删除元素。