当我的viewModel具有observableArray(self.images)并且我希望当一个项属性(mm)更改为在UI上反映出来时的问题
在实际代码中,图像从服务器加载并映射到对象DOcImage
这里是代码注释,我根据其他问题答案尝试了一些事情,但没有运气
这里是小提琴http://jsfiddle.net/mosta/jt6bbeq4/21/ 当点击“更改”时,它应显示第一项= 2,根据upate函数
中的行 var DocImage = function () {
var self = this;
self.mm = ko.observable('1');
self.nn = ko.observable('1');
};
var viewModel = function () {
var self = this;
self.images = ko.observableArray([DocImage]);
self.update = function () {
self.images()[0].mm = '2';
}
};
var vm = new viewModel();
vm.images = [{ mm: ko.observable('1') ,nn: ko.observable('2') }, {mm:ko.observable('3'), nn:ko.observable('4')}];
ko.applyBindings(vm);
感谢您的帮助,谢谢
答案 0 :(得分:0)
设置
时m.images = [{ mm: ko.observable('1') ...
你实际上用简单数组重写了observableArray。要更新observable数组中的值,您需要使用另一种语法(请参阅documentation)
m.images([{ mm: ko.observable('1') ...);
对于像mm
self.images()[0].mm('2');
请参阅fiddle
答案 1 :(得分:0)
你走了:
var viewModel = function () {
var self = this;
self.images = ko.observableArray([DocImage]);
self.update = function () {
self.images[0].mm('2');
}
};
var vm = new viewModel();
vm.images = [{ mm: ko.observable('1') ,nn: ko.observable('2') }, {mm:ko.observable('3'), nn:ko.observable('4')}];
ko.applyBindings(vm);