Angularjs 使用简单数组时,第一次在ng选项中选择的值不起作用 {{selectedValue}}

Angularjs 使用简单数组时,第一次在ng选项中选择的值不起作用 {{selectedValue}},angularjs,ng-options,Angularjs,Ng Options,剧本 <script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js'></script> <div data-ng-app="app" data-ng-controller="exCtrl"> <select data-ng-model="selectedValue" ng-options="key

剧本

<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.1/angular.js'></script>

<div data-ng-app="app" data-ng-controller="exCtrl">
    <select data-ng-model="selectedValue"
        ng-options="key as value for (key , value) in dataset">
        <option></option>
    </select>
   {{selectedValue}}
</div>

var-app=angular.module(“app”,[]);
应用控制器(“exCtrl”,功能($范围){
$scope.dataset={1:“一”,2:“二”,3:“三”};
$scope.selectedValue=1;
});
最初在选择元素中未选择选定值,但选定值在那里,但在从选择元素中选择一个值后,它工作正常。为什么?我如何克服这一点


注意:我无法更改数组结构。

在您的代码中使用文字对象,它的工作方式类似于键/值数组,但当您声明
{1:“一”时。
实际上键不是整数1,而是字符串“1”

如果要使用对象作为源初始化ng option指令,则必须使用字符串

<script>
    var app = angular.module("app",[]);
    app.controller("exCtrl",function($scope) {
        $scope.dataset = {1:"one", 2:"two", 3:"three"};
        $scope.selectedValue = 1;
    });
</script>

键是字符串,不是整数:
$scope.selectedValue='1';
。谢谢,它工作正常:)
 $scope.selectedValue = "1";