我正在從服務器獲取選擇列表並填充observableArray。然後我想將選定的項目設置爲預定義的值。我有一個非常簡單的jsFiddle,它可以模擬通過單擊按鈕從服務器拉取數據。Knockout預定義的默認選項綁定到可觀察數組
http://jsfiddle.net/JonathanN/hev1rqeu/
這裏的Java腳本的基本嘗試:
(function() {
var vm = (function() {
var self = this;
self.array = ko.observableArray([]);
self.selectedValue = ko.observable();
self.useSetTimeout = ko.observable(false);
self.array.subscribe(function(newValue) {
self.selectedValue('b');
});
self.populate = function() {
self.array(['a','b','c']);
};
}());
ko.applyBindings(vm);
}());
這是我的解決辦法,它取代 「self.selectedValue( 'B');」:
var waitForSelectToPopulate = function() {
self.selectedValue('b');
if(self.selectedValue() != 'b') {
setTimeout(waitForSelectToPopulate, 10);
}
};
waitForSelectToPopulate();
作爲解決方法,我不太喜歡這個。似乎應該有一個合理的方法來處理這個問題,但只是設置訂閱觸發器的值似乎不起作用。