0
我有以下對象。KnockoutJS;綁定值不更新或ko.computed()未更新
var q = {
availableModels: ko.observableArray();
selectedModel: ko.observable();
displayModel: function(item) { return item.text; }
image: ko.computed(function() {
return q.selectedModel().image;
});
}
這勢必以下元素。
<select data-bind="options: availableModels, value: selectedModel, optionsText: displayModel, optionsCaption: 'Choose a Model'"></select>
和一個圖像。
<img data-bind="attr: { src: image }">
我將一些對象推入availableModels。
q.availableModels.push({ index: 0, text: 'castis0', image: 'castis0.jpg'});
q.availableModels.push({ index: 1, text: 'castis1', image: 'castis1.jpg'});
我然後設置selectedModel
q.selectedModel({ index: 1, text: 'castis2', image: 'castis2.jpg' });
html元素確實包含了我推入availableModels但當前選擇的元素沒有被設置selectedModel改變的對象。
如果我應用更改,它確實有效。
q.selectedModel = ko.computed(function() {
for(var i = 0; i < q.availableModels().length; i++) {
var data = q.availableModels()[i];
if (data.index == 1) {
return data;
}
}
})
但圖像的src沒有改變。
我未意識到了什麼,我需要改變,
啊...是啊,使這種方式更容易理解。我提出了你的小提琴的改變,現在一切正常。謝謝! – castis 2012-08-16 18:13:12