下面是两段代码:
<input type="text" ng-model="data.message">
<div>Hello, {{data.message}}</div>
<div ng-controller="firstCtrl">
<input type="text" ng-model="data.message">
<div>Hello, {{data.message}}</div>
</div>
<div ng-controller="secondCtrl">
<input type="text" ng-model="data.message">
<div>Hello, {{data.message}}</div>
</div>
和
<input type="text" ng-model="msg">
<div>Hello, {{msg}}</div>
<div ng-controller="firstCtrl">
<input type="text" ng-model="msg">
<div>Hello, {{msg}}</div>
</div>
<div ng-controller="secondCtrl">
<input type="text" ng-model="msg">
<div>Hello, {{msg}}</div>
</div>
ng-controller
这里创建了新的范围,因此firstCtrl
和secondCtrl
范围原型在这两种情况下都从根范围继承。因此,理想情况下,当子项的属性被覆盖时,是shadows
从父项继承的值,并且父项中的值保持不变。那么为什么这两个片段的工作方式不同呢?
另外,为什么在第一个片段中,更改值 infirstCtrl
也会更改根范围内的值?