使用AngularJS的选项标记的加载空值

时间:2014-04-04 06:03:28

标签: angularjs

我能够使用Angular JS将所有值绑定到选项标记。但是,我的问题是,在加载时,会附加空值。当我在JS代码中设置一个值时,它只设置第一个值,但是当我在浏览器控制台中检查时,它不会被选为属性。我怎样才能为选项标签赋予自己的价值。

JS

这始终只设置第一个值"选择"属性

    statePromise.success(function(data, status, headers, config) {
        for(index in data) {
            console.log("ID:"+data[index].id+" Name:"+data[index].name);
            if (data[index].id) {
                $scope.states.push({
                    id:data[index].id,
                    name:data[index].name                   
                });                 
            }
        }
        $scope.statelist = $scope.states;
        $scope.state = $scope.statelist[0];

但是,当我更改选项值并在浏览器中检查时,它仍会首先显示。因为上述说法。如何设置我从DB获得的选项值

<option value="1">AP</option>
<option value="2">TN</option>
<option value="3">KN</option>

实际上它的保存为

<option value="0">AP</option>
<option value="1">TN</option>
<option value="2">KN</option>

HTML代码

<select  ng-model="state" ng-change="changeState()" ng-options="state.name for state in statelist"></select>

任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试将ng-options更改为

ng-options="state.id as state.name for state in statelist"

在您的控制器中执行以下操作:

$scope.state = $scope.statelist[0].id;