ng-form 指令会在 Angular js 中创建一个新的子范围吗?
已经谷歌搜索了半小时找不到太多。
没有。您可以从这个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
变量,但是一旦您在该范围内与它交互,它就有自己的变量)。