2015-02-24 72 views
1

我做了一個簡單的angular.js例子說明我的問題:example啓動值不設置選定值

我要選擇元素的初始值設定爲特定值。

<select name="i" id="i" ng-model="selectedItem"> 
     <option ng-repeat="i in items" value="{{i}}">{{i}}</option> 
    </select> 

選項和select元素得到完美呈現。但是,就像在這個例子中,當我將我的控制器中的值設置爲6時,頁面上的選定值仍然是第一個元素。

scope.selectedItem = 6; 

有兩個簡單的按鈕,只是改變選定的值。當你按他們選擇更改沒有問題。

編輯:我更新的jsfiddle和刪除未使用的代碼,並更名爲代碼,使事情更加清楚

EDIT2:我錯過了,詢問是否有可能以固定第二選擇的元素呢?不同的是,這個數組包含對象而不是數字。

<select name="o" id="o" ng-model="selectedItem"> 
     <option ng-repeat="o in objects" ng-value="{{o.ID}}">{{o.Text}}</option> 
    </select> 
+0

範圍變量是'$ scope',而不是'scope'。 – 2015-02-24 15:17:30

+0

@JimCote我重命名了依賴關係 – 2015-02-24 15:18:07

+0

你的小提琴在整個控制器中都使用'scope'。 – 2015-02-24 15:19:08

回答

2

您不應該使用ngRepeat來渲染選項元素,它不應該適用於選擇和選項。使用ngOptions如預期與ngModel其中將工作:

<select name="i" id="i" 
     ng-model="selectedItem" 
     ng-options="i for i in items"> 
</select> 

對於具有ngModel綁定到陣列的對象的ID屬性,第二選擇框,這將是:

<select name="o" id="o" 
     ng-model="selectedItem" 
     ng-options="obj.ID as obj.Text for obj in objects"> 
</select> 

演示:http://jsfiddle.net/d3jf7ueq/9/

+0

謝謝。這工作完美。目前我不知道爲什麼,但我會閱讀ngOptions文檔。 – 2015-02-24 15:41:06