动态更改ng-options

dynamically change ng-options

本文关键字:ng-options 动态      更新时间:2023-09-26

我目前有以下选择输入

<select
    ng-model="people"
    ng-options="capacity for capacity in Range(1, roomCapacity)"
    class="form-control"
    id="howmany"
    ng-required="noOfPeopleRequired()">
</select>

范围

$scope.Range = function(start, end) {
    var result = [];
    if (end === 1) {
        result.push(1);
    } else {
        for (var i = start; i <= end; i++) {
            result.push(i);
        }
    }
    return result;
};

我正在观察一个int,当它改变时,将roomCapacity的值设置为它,但不幸的是,在我的select

中,选项的范围没有改变

我应该怎么做?

对于数组数据源,可以使用下面的表达式:

select as label for value in array

试试这个:

JS

.controller("myCtrl",function($scope){
    $scope.Range = function(start,end){
        var result = [];
        if(end===1){
            result.push(1);
        }else{
            for(var i=start;i<=end;i++){
                result.push(i);
            }
        }
        return result;
    }
});

<div ng-controller="myCtrl">
  <input type="text" id="roomCapacity" ng-model="roomCapacity"/>
  <select
    ng-model="people" ng-options="capacity as capacity for capacity in Range(1,roomCapacity)"
  >
    <option value="">Please select</option>
  </select>
</div>

这是一个jsFiddle DEMO