如何在angularjs中使用ng-options

时间:2015-07-08 13:28:34

标签: javascript html angularjs html5

select元素未按预期绑定。

HTML:

<select ng-model="SelectedPage" 
 ng-change="ShowPageResult();" ng-options="o for o in PageNumbers">
</select>

ctrl.js:

function BindPageNumbers() {        
        $scope.PageNumbers = [];
        for (var i = 1; i <= 2) ; i++) {
            $scope.PageNumbers.push(i);
        }      
    }

输出:

<option value="0"label="1">1</option>
<option value="1" label="2">2</option>

如果我放$scope.PageNumbers.push(i.toString());,则输出为

<option value="?"label=""></option>
<option value="0" label="1">1</option>
<option value="1" label="2">2</option>

预期:

<option value="1">1</option>
<option value="2">2</option>

如何获得所需的o / p:http://jsfiddle.net/s222904f/

2 个答案:

答案 0 :(得分:2)

在您的控制器中:

$scope.PageNumbers = [];
for (var i = 1; i <= 2 ; i++) {
    $scope.PageNumbers.push({ id: i, value: i });
}

在您看来:

<select ng-model="SelectedPage"    
    ng-options="o.id for o in PageNumbers track by o.value"></select>

答案 1 :(得分:0)

检查:http://jsfiddle.net/khwuv4Lj/

根据答案here,空选项存在,因为

ng-model="SelectedPage"

行将其绑定到空字符串。如果范围中的选择设置了默认值,则可以避免这种情况。

编辑:更新了Plnkr以修复OP的评论。

enter image description here