2

ng-form 指令会在 Angular js 中创建一个新的子范围吗?

已经谷歌搜索了半小时找不到太多。

4

1 回答 1

2

没有。您可以从这个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变量,但是一旦您在该范围内与它交互,它就有自己的变量)。

于 2015-07-09T20:45:42.523 回答