2014-10-26 42 views
0

我有一個帶有動態生成的選擇列表的表單。該列表的值從範圍中檢索。當前選擇的值也從範圍中檢索。在AngularJS中同步動態選擇列表的參數

不幸的是,有一個同步問題。

下面說明。動態選擇列表顯示1爲選中狀態,但參數爲2.靜態選擇列表顯示正確的值。

angular.module('fiddle', []) 
 
.controller('Ctrl', function($scope) { 
 
    $scope.xs = [1,2,3]; 
 
    $scope.param = 2; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="fiddle" ng-controller="Ctrl"> 
 
    Correct representation: 
 
    <select ng-model="param"> 
 
     <option value="1">1</option> 
 
     <option value="2">2</option> 
 
     <option value="3">3</option> 
 
    </select><br> 
 
    Incorrect representation: 
 
    <select ng-model="param"> 
 
     <option ng-repeat="x in xs" value="{{x}}">{{x}}</option> 
 
    </select><br> 
 
    param: {{param}} 
 
</body>

回答

0

因爲我是正確制定我的問題,因爲通常情況下,我找到了解決辦法了。

我應該在選項標籤上使用ng-options而不是ng-repeat。

<select ng-model="param" ng-options="x for x in xs"> 
</select> 

https://docs.angularjs.org/api/ng/directive/select