使用ng-repeat="i in getNumber(myNumber) track by $index"
重复特定次数,该次数由HTML中的select
对象定义。
var number = parseInt($( "#number option:selected" ).text());
$scope.myNumber = number;
$scope.getNumber = function(num) {
return new Array(num);
}
完美无缺。现在,我希望在我更改#number option:selected
时进行更新。 var number
通过执行类似$( "#number" ).change(function() {});
的操作来接收此内容,但即使我将上面的代码块放在那里,ng-repeat
也只会更改onload。
如何将ng-repeat
与变更变量一起使用?
答案 0 :(得分:1)
不要使用jQuery事件处理程序,因为事件不会触发摘要周期,除非你告诉它。您可以只为选择框提供ng-model,并在更改选择时自动启动摘要周期以更新绑定。
<select ng-model="myNumber">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<div ng-repeat="i in getNumber(myNumber)">
I am at index: {{$index}}
</div>
答案 1 :(得分:0)
您可以像这样观看迭代次数:
$scope.iteration = new Array(2);
$scope.$watch('repeat_num',function(new_val) {
if (new_val) {
$scope.iteration = new Array(parseInt($scope.repeat_num));
}
});
HTML
<select ng-model="repeat_num">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<ul>
<li ng-repeat="i in iteration track by $index">Value</li>
</ul>