我做错了但我看不清楚(这可能是因为我的AngularJS技能很低)。 我的HTML中有一个简单的ng-repeat:
<ul>
<li ng-repeat="fot in fotografia"><img src="{{fot.path}}"></li>
</ul>
这是我的app.js:
myApp.controller('homeController', function($scope) {
// fotografia = []; is here only because I get an error otherwise,
// which means my later for loop can't access the $scope.fotografia
fotografia = [];
$scope.fotografia = [
{path:'img/fotografia/fot_1.jpg'},
{path:'img/fotografia/fot_2.jpg'}
];
// I want to add more images with this:
for(var i=0; i<5; i++) {
fotografia.push({
path: 'img/fotografia/fot_'+[i]+'.jpg'
});
}
});
Ng-repeat与我在数组中已有的2张图像(fot_1.jpg,fot_2.jpg)一起正常工作。循环就是问题所在。如何将更多项目推入我的阵列?
答案 0 :(得分:7)
将它们推到示波器中的阵列上。 angular将更新视图。
for(var i=0; i<5; i++) {
$scope.fotografia.push({
path: 'img/fotografia/fot_'+[i]+'.jpg'
});
}
答案 1 :(得分:1)
fotografia
是$scope
对象的属性,因此您可以执行以下操作:
for(var i=0; i<5; i++) {
$scope.fotografia.push({
path: 'img/fotografia/fot_'+[i]+'.jpg'
});
}
答案 2 :(得分:1)
当范围内的所有内容都已更改或您使用时,Angular将更新视图
$scope.digest()
。
所以只需将项目推入范围内的数组,删除
fotografia = [];
因为你不需要它。
就像这样:
```
myApp.controller('homeController', function($scope) {
$scope.fotografia = [
{path:'img/fotografia/fot_1.jpg'},
{path:'img/fotografia/fot_2.jpg'}
];
for(var i=0; i<5; i++) {
$scope.fotografia.push({
path: 'img/fotografia/fot_'+[i]+'.jpg'
});
}
});
```