ng-form指令是否在角度js中创建了一个新的子范围?
谷歌搜索半小时都找不到。
答案 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
变量,但是一旦您在该范围内与它进行交互,它就会它自己的变量。)