如何在ng-repeat中的ng-model中设置结果?
包含ng-repeat
的示例:
<tbody ng-repeat="(key,boleta) in boletas track by $index">
<tr>
<td>
<label for="">NUMBER </label>
<select name='bills[{{key}}][number]' class="form-control"
ng-change='changeBoletas()' ng-model='model.numberBoleta'>
<option ng-repeat="(number, x) in model.boletas">{{number}}</option>
</select>
</td>
<td>
<label for="">Comisión </label>
<input name='bills[{{key}}][runt]' type="number"
class="form-control comision-{{key}}"
ng-model='boleta[$index].comision'
ng-change='dataBoleta()'>
<td>
<div ng-show='true' ng-if="status=='applied'"
data-ng-click="removeItemBoletas($index)">
<i class="fa fa-times color3"></i>
</div>
</td>
</tr>
</tbody>
JS:
$scope.changeBoletas = function() {
$scope.boleta=[];
$scope.boleta[0].comision=123;
}
发生的错误是:
TypeError:无法设置undefined
的属性'comision'
https://jsfiddle.net/05er7rk5/18/
我希望每次你选择选择mimes自动完成ng-model的选项。
答案 0 :(得分:0)
当您尝试访问没有值的predictions
时,发生了错误。在代码$scope.boleta[0]
中,我创建并添加了一个元素。
现在,如果您访问$scope.boleta.push({comision:123})
,则错误将消失。
请使用如下代码:
$scope.boleta[0].comision = 123;
答案 1 :(得分:0)
TypeError:无法设置undefined
的属性'comision'
因为$scope.boleta
被声明为空数组[]
。因此,数组中不存在具有comision
属性的对象。
如果您尝试将对象访问到数组中,可以执行以下操作:
var boleta = [];
boleta[0] = { comision: 123 };
console.log(boleta);
答案 2 :(得分:0)
错误已经解决了。问题是由于NG-REPEAT内部的NG模型的声明。在这种情况下,应该调用NG REPEAT的模型,以便它可以识别它,最重要的是,它不会出现未定义的
<tbody ng-repeat="(key,boleta) in boletas track by $index">
$scope.changeBoletas = function(varDato) {
$scope.boletas[varDato].comision=123;
}