我的视图显示一个列表组成的对象,所有这些对象都存储在koObservableArray MM.slideWellThumbnails
使用data-bind="foreach: slideWellThumbnails"
当只更改了对象的一个属性(例如confirmed
)时,我无法更新对象的单个视图。
MM.slideWellThumbnails.valueHasMutated();
MM.slideWellThumbnails.extend({notify:
'always'});
没有帮助。
我目前正在做的是,制作阵列的副本,清除整个阵列 数组,然后将数据推回到数组。它有效,但我想它并不像KO发明者那样。
MM.slideWellThumbnails()[ +well ].confirmed = confirmed;
MM.slideWellThumbnails1([]);
ko.utils.arrayForEach( MM.slideWellThumbnails(), function(data)
{
MM.slideWellThumbnails1.push( data );
});
MM.slideWellThumbnails([]);
ko.utils.arrayForEach( MM.slideWellThumbnails1(), function(data)
{
MM.slideWellThumbnails.push( data );
});
有没有一种有效的方法呢?
答案 0 :(得分:1)
感谢James Thorpe,我可以解决它:
宣布确认为可观察:
var MyDataStructure= function( /*args*/ ) {
//...
this.confirmed = ko.observable(false)
//...
}
并指定了新值:
//+well for explicitly converting to int from string
MM.slideWellThumbnails()[ +well ].confirmed(confirmed);
谢谢!