【发布时间】:2014-10-02 01:28:30
【问题描述】:
我有一个绑定到可观察数组的元素,但是当可观察数组中的值更改时,下拉列表不会更改。我究竟做错了什么?我希望能够选择一个可观察对象,更改其值之一并让下拉列表反映更改。在 jsfiddle 中,只需在下拉列表中选择一个值,更改文本,然后单击更新。
Javascript:
var ViewModel = function () {
self.programs = ko.observableArray([
{programId: 1, programDescription: 'One'},
{programId: 2, programDescription: 'Two'},
{programId: 3, programDescription: 'Three'}
]);
self.program = ko.observable();
self.saveProgram = function () {
for (i = 0; i < self.programs().length - 1 ; i++) {
if (self.programs()[i].programId == self.program().programId) {
self.programs()[i].programDescription =
self.program().programDescription;
alert(self.programs()[i].programDescription);
}
}
};
};
ko.applyBindings(new ViewModel());
html:
<div>
<select data-bind="options: programs,
optionsText: 'programDescription',
value: program"></select>
</div>
<div>
Update Program Description: <input type="text" data-bind="value: program().programDescription" />
<button type="button" data-bind="click: saveProgram">Update</button>
</div>
提前谢谢你
【问题讨论】:
标签: knockout.js