2016-03-29 14 views

答えて

3

何も起こらない(see reference)

ng-ifは、html要素がDOMで作成されているかどうかを判断するだけです。存在する場合、<input>の値は双方向で$scope.myVariableにバインドされます。

+0

これは正確には双方向のデータバインディングではありませんか? DOM要素を破壊しても、バインドされた 'ng-model'は破壊されません。 – Mawg

+1

...実際、 'ng-if'がfalseと評価されるたびに、要素スコープは破棄され、trueと評価されたときに再び再作成されます。プロトタイプの継承のおかげで、コントローラの中にあるときにこの違いに気づくことはありません。したがって、 '$ scope.myVariable'は' '要素が存在するときに更新されますが、削除されても破棄されません。要素スコープが破棄されました – Naigel

+1

私の説明が本当に明確かどうか分かりません...参照へのリンクは明らかに '' ngIf' ... ' – Naigel

2

最初のものng-if表現には、{{}}の補完指示を付けるべきではありません。

上記の場合
<div ng-if="someCondition"> 
    <input type="text" ng-model="myVariable"/> 
</div> 

someConditionスコープ値は、DOMツリーから削除されますのみdiv/elementことをその時にnot defined OR !=nullで、

あなたはmyVariable変数で何が起こるか考えているとその中に が入っていますか?

スコープの値がコントローラのインスタンスにバインドされているため、そのまま維持されます。コントローラのインスタンスがスコープの値が存在するその時間まで存在するまでです。

関連する問題