2017-09-11 68 views
0

我有一個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隱藏。爲什麼發生這種情況?我必須設置一些物業嗎?謝謝。

+0

你能提供更多的代碼嗎?所以我可以很容易地理解你的問題 – parthi

+1

使用(點擊)而不是ng-click! – Vega

回答

0

使用ngHide代替ngIf。它只會摺疊元素並使其不可見,而ngIf則會從DOM完全渲染元素。

+0

就是這樣。 [hidden] =「datiRichiestaClicked」就像一個魅力。 – esseara

+0

我之前正在重新思考這個問題,這很有道理。因爲[hidden]只是隱藏元素,而* ngIf指令添加/刪除DOM中的元素,當然,我正在丟失我的數據。 – esseara

+0

ngHide適用於angularJS而非角度 –

0

你可以使用[ngStyle] = 「myFunction的」 隱藏你的DIV,而不是* ngIf在組件

然後:

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

綁定到[隱藏]屬性

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

* ngIf從DOM中刪除元素,其中visibility:hidden做n OT。

1
<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 
+0

如果可能,您應該提供解釋和答案。 – Mark