【发布时间】:2016-10-24 18:46:31
【问题描述】:
我正在使用 ng-repeat 通过表单绑定数组。这是代码。
HTML:
<form>
<table>
<tr data-ng-repeat="x in names">
<td><textarea placeholder="New Name" ng-model="x.name" name="" ></textarea></td>
<td><button style="background:#f00;" ng-click="removeChoice(x)">-</button></td>
</tr>
</table>
</form>
Javascript:
.controller('TerrItemCtrl', function($scope){
$ionicModal.fromTemplateUrl('templates/addAddress.html', {
scope: $scope,
animation: 'animated bounceInDown',
hideDelay: 920
}).then(function (modal) {
$scope.names = [{ 'id': 'name1'}];
$scope.modal = modal;
$scope.modal.show();
});
$scope.removeChoice = function (x) {
for (i = 0; i < $scope.names; i++) {
if ($scope.names[i].id === x.id) {
$scope.names.splice(i);
break;
}
}
};
});
我在这个表单的控制器中有一个 $scope.removeChoice 函数,html 找不到它。我相信这是因为我正在使用的数组,但这是我设法将 (-) 按钮放在输入标签右侧的唯一方法。有什么办法绕过这个吗?
【问题讨论】:
-
请添加您的控制器代码。
-
不是答案,但您的
data-ng-repeat是否应该不在<tr>元素上?以上会导致多个<tbody>的... -
你应该使用
$index然后Collection.splice(INDEX,1) -
首先从表格标签中删除 ng-repeat 并将其添加到 tr 标签中,就像您在 HTML 中制作多个表格一样。
-
@Rayon,代码非常好,
removeChoice()应该使用x值作为参数调用。控制器中一定有什么事情发生...
标签: javascript angularjs angularjs-scope html-table