如何在AngularJS中访问组合框的选定元素?

时间:2015-05-09 20:51:52

标签: javascript html angularjs combobox

我将一个数组放入一个组合框中,并希望在按下按钮时删除标记的元素(通过单击组合框中的元素选择)。如何访问所选元素?

我的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

1 个答案:

答案 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)
};  

Updated fiddle.