我将一个数组放入一个组合框中,并希望在按下按钮时删除标记的元素(通过单击组合框中的元素选择)。如何访问所选元素?
我的HTML:
<div ng-controller="MyCtrl">
<select size="5">
<option ng-repeat="element in elements">{{element}}</option>
</select>
<button ng-click="removeSelected()">Delete selected</button>
我的js:
function MyCtrl($scope) {
$scope.elements = [1, 2, 3];
$scope.removeSelected = function () {};
}
这是我的Fiddle。
答案 0 :(得分:2)
您需要使用ng-options
代替ng-repeat
。
ng-options
是一个应用于父选择元素的指令,如下所示:
<select ng-options="element for element in elements" ng-model="selected">
</select>
然后,您可以继续通过select元素的ng-model
访问有效选择,在这种情况下为selected
- 并将其删除,如下所示:
$scope.removeSelected = function(){
var index = $scope.elements.indexOf($scope.selected);
$scope.elements.splice(index, 1)
};