角度ngIf删除输入的检查值

时间:2018-10-26 18:38:14

标签: angular angular-ng-if

以以下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变量重新分配为真实值时,选中的值将重置为无。

任何人都可以阐明原因,以及如何解决此问题吗?

2 个答案:

答案 0 :(得分:3)

原因实际上很简单:具有980的元素的子代将从DOM中删除。

因此,无论何时将sum(int_price) / len(int_price) 更改为*ngIf === false,输入都会被删除。当您将其更改为showFilters时,新实例将添加到DOM中。

要解决此问题,您将必须控制它们,即将选中状态的值存储在组件中,并将其绑定到输入。

答案 1 :(得分:3)

使用* ngIf时,如果条件为false,则将从DOM中删除以下元素。如果要保留状态,[隐藏]可能对您有用,因为它只是隐藏元素,而不是从DOM中删除元素。