2013-07-29 94 views
0

在下面鏈接的代碼中,頁面加載時顯示的選項始終爲「X」。KnockoutJs在選擇標記中設置選定選項不起作用

我正在使用兩種不同的方法來嘗試將值設置爲「z」,但它永遠不會被設置。

我在做什麼錯?我如何將它設置爲「z」?

HTML:

<select id="TestList" data-bind='options: Options, value: SelectedOption'></select> 
<br /> 
<select id="TestList" data-bind='options: Options, selectedOptions: SelectedOption2'></select> 

的Javascript:

var TestViewModel = function() { 
     var self = this; 
     self.Options = ko.observableArray(['x', 'y', 'z']); 
     self.SelectedOption = ko.observable(self.Options[2]); 
     self.SelectedOption2 = ko.observableArray([self.Options[2]]); 
    }; 



    $(document).ready(function() { 
     ko.applyBindings(new TestViewModel()); 
    }); 

(代碼:http://jsfiddle.net/cleverpatrick/huqNd/2/

回答

3

沒有什麼不對您options約束力,但你如何在SelectedOption設置的初始值和SelectedOption2

因爲Optionsko.observableArray你需要得到它的下層陣列與self.Options()作爲函數調用它。

所以,你已經錯過了在代碼中(),正確的版本應該是這樣的:

self.SelectedOption = ko.observable(self.Options()[2]); 
self.SelectedOption2 = ko.observableArray([self.Options()[2]]); 

演示JSFiddle