のはsomeCondition
が偽であり、そのDIVは、DOMから削除される場合、私は何も$scope.myVariable
に、を起これば、何ng-ifがfalseと評価された場合、AngularJSはモデルデータを無効にしますか?
<div ng-if="{{someCondition}}">
<input type="text" ng-model="myVariable"/>
</div>
のようなものを持っているとしましょうか?
のはsomeCondition
が偽であり、そのDIVは、DOMから削除される場合、私は何も$scope.myVariable
に、を起これば、何ng-ifがfalseと評価された場合、AngularJSはモデルデータを無効にしますか?
<div ng-if="{{someCondition}}">
<input type="text" ng-model="myVariable"/>
</div>
のようなものを持っているとしましょうか?
何も起こらない(see reference)。
ng-if
は、html要素がDOMで作成されているかどうかを判断するだけです。存在する場合、<input>
の値は双方向で$scope.myVariable
にバインドされます。
最初のものng-if
表現には、{{}}
の補完指示を付けるべきではありません。
<div ng-if="someCondition">
<input type="text" ng-model="myVariable"/>
</div>
、someCondition
スコープ値は、DOMツリーから削除されますのみdiv
/element
ことをその時にnot defined
OR !=null
で、
あなたは
myVariable
変数で何が起こるか考えているとその中に が入っていますか?
スコープの値がコントローラのインスタンスにバインドされているため、そのまま維持されます。コントローラのインスタンスがスコープの値が存在するその時間まで存在するまでです。
これは正確には双方向のデータバインディングではありませんか? DOM要素を破壊しても、バインドされた 'ng-model'は破壊されません。 – Mawg
...実際、 'ng-if'がfalseと評価されるたびに、要素スコープは破棄され、trueと評価されたときに再び再作成されます。プロトタイプの継承のおかげで、コントローラの中にあるときにこの違いに気づくことはありません。したがって、 '$ scope.myVariable'は' '要素が存在するときに更新されますが、削除されても破棄されません。要素スコープが破棄されました – Naigel
私の説明が本当に明確かどうか分かりません...参照へのリンクは明らかに '' ngIf' ... ' – Naigel