Angular - hiding/showing 部分重置表单数据

Angular - hiding/showing sections reset form data

我有一个 form,有一些 input 字段和一些 select 字段,如下所示:

<div class="form-row ">
<div on-click="datiReferentiBancaClicked = !datiReferentiBancaClicked"></div>
<div class="form-row" *ngIf="!datiReferentiBancaClicked">
<label>Nome</label>
<input type="text" id="refbnkNome" [ngModel]="richiesta.refbnkNome" formControlName="refbnkNome" placeholder="Nome">
</div>
</div>

所以第一个 div 切换第二个。问题是,当我隐藏第二个 div 并且字段中有一些数据时,此数据会重置为 div 隐藏。为什么会这样?我必须设置一些 属性 吗?谢谢。

您可以使用 [ngStyle]="myFunction" 来隐藏您的 div 而不是 *ngIf

然后在你的组件中:

myFunction() {
  if (!datiReferentiBancaClicked) 
    return {'visibility':'visible'}
  else
    return {'visibility':'hidden'}
}

绑定到 [隐藏] 属性

<div [hidden]="datiReferentiBancaClicked"></div>

*ngIf 从 DOM 中删除元素,而 visibility:hidden 没有。

<div class="form-row">
<div ng-click="datiReferentiBancaClicked = !datiReferentiBancaClicked">Toggle</div>
<div class="form-row" ng-show="!datiReferentiBancaClicked">
<label>Nome</label>
<input type="text" id="refbnkNome" ng-model="richiesta.refbnkNome" placeholder="Nome">
</div>
<div class="form-row" ng-hide="datiReferentiBancaClicked">
// if datiReferentiBancaClicked is true!. This div will be active!
</div>
</div>
// This code is example for toggle

使用 ng Hide 而不是 ngIf。它只会折叠元素并使其不可见,而 ngIf 会从 DOM.

中完全删除元素