ngForm是否创建了新范围

时间:2015-07-09 18:08:29

标签: angularjs angularjs-ng-form

ng-form指令是否在角度js中创建了一个新的子范围?

谷歌搜索半小时都找不到。

1 个答案:

答案 0 :(得分:1)

不。您可以从plunker看出ng-form没有创建新范围。

<h2>Parent Scope</h2>
<input ng-model="name" />
<p>Hello {{name}}!</p>
<h2>ng-form</h2>
<ng-form>
  <input ng-model="name" />
  <p>Hello {{name}}!</p>
</ng-form>
<h2>ng-if</h2>
<div ng-if="true">
  <input ng-model="name" />
  <p>Hello {{name}}!</p>
</div>

你可以告诉你的方式是你永远不应该在范围上放置原语的原因。如果更改前两个输入,则name变量将全部更改。但是如果你改变了最后一个输入,它只会在那里改变。在此之后,它将停止响应对前两个输入框所做的更改(因为之前它使用的是父作用域name变量,但是一旦您在该范围内与它进行交互,它就会它自己的变量。)