我只是想了解
如果np-repeat在每個迭代中創建一個新的子範圍,那麼爲什麼這個代碼設置變量在父範圍內,而不是在子範圍:吳重複和創建新的子範圍
var app = angular.module('myApp', []);
app.controller('WorldCtrl', function($scope) {
$scope.population = 7000;
$scope.countries = [
{name: 'France', population: 63.1},
{name: 'United Kingdom', population: 61.8},
];
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='myApp' ng-controller='WorldCtrl'>
<li ng-repeat="country in countries">
<span ng-init="country.name='Egypt'"></span>
{{country.name}} has population of {{country.population}}
</li>
<hr>
World's population: {{population}} millions {{countries}}
</div>
預期輸出:
Egypt has population of 63.1 Egypt has population of 61.8
World's population: 7000 millions [{"name":"France","population":63.1},{"name":"United Kingdom","population":61.8}]
我很困惑;你期望會發生什麼? – 2014-09-22 14:27:56
@ExplosionPills我編輯了這個問題,請看一看 – 2014-09-22 14:31:02
它在父範圍中設置'country.name',因爲'coutry'是從JS原型鏈中讀取的,它在這個對象中找不到,所以從父對象,然後設置'name'。 – 2014-09-22 14:36:37