示例:
<div ng-repeat="obj in objList">
<input type="text" id="obj_{{obj.id}}"/>
<button ng-click="removeRow(NEED PARAM HERE)">Remove</button>
</div>
我可以使用按钮的ID或者父母的,但我不确切知道如何。
第二个类似的情况:例如,当我想从输入中获取一些值时。我该怎么办?
答案 0 :(得分:3)
只需在您的函数中传递obj
,然后从控制器中的obj
移除对象objList
,它就会从您的视图中消失,这就是角度数据绑定的工作方式:
<div ng-repeat="obj in objList">
<input type="text" id="obj_{{obj.id}}"/>
<button ng-click="removeRow(obj)">Remove</button>
</div>
在你的控制器中:
$scope.removeRow = function(obj) {
var index = $scope.objList.indexOf(obj);
$scope.objList.splice(index, 1);
}
答案 1 :(得分:3)
有点难以理解您的问题,但是您是否尝试将value
从文本字段传递给该函数,以便从列表中删除该行?
如果这是真的那么你想要做这样的事情。
您想要使用ngRepeat track by
功能。见https://docs.angularjs.org/api/ng/directive/ngRepeat
<强> HTML 强>
<div ng-repeat="obj in objList track by $index">
<input type="text" id="obj_{{obj.id}}" />
<button ng-click="removeRow($index)">Remove</button>
</div>
此时,您只是使用基本的Javascript splice
功能从索引中删除Array
中的项目。见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
<强> JS 强>
$scope.removeRow = function($index) {
$scope.objList.splice($index, 1);
};