我使用wizmo网格并绑定到作为StockData创建的模型:
//我的意见模式:
function StockData(data)
{
var self=this;
self.Symbol = data.Symbol;
self.LTP=ko.observable(data.LTP);
};//在ajax服务调用成功后添加数据
var arr[];
jsondata=event.data.value;
$.each(jsonData,function(i)
{
vm.WijGridViewModel.Data.push(new StockData({Symbol:jsonData[i].Symbol,LTP:jsonData[i].LTP}));
});
ko.utils.arrayForEach(vm.WijGridViewModel.Data(),function(item)
{
vm.WijGridViewModel.FilteredData.push(item);
});更新数据
在->下面工作,但是我不想使用它的原因是它只是将observable[]中的整个旧项替换为新的项,而我只是想更新一个单独的字段,即LTP。下面我尝试将整个新项目替换为旧项目,并注意到使用大量的数据和实时的数据给了我性能问题。
var newItem = event.data.value1;
var index = event.data.value2;
vm.WijGridViewModel.FilteredData.replace(
vm.WijGridViewModel.FilteredData()[index],
{Symbol:newItem.Symbol,LTP:newItem .LTP});到目前为止我尝试过这样做,它更新一个可观察到的,但不更新ui :
ko.utils.arrayForEach(vm.WijGridViewModel.FilteredData(),function(item)
{
if(item.Symbol==newItem.Symbol)
{
item.LTP= newItem.LTP;
}
});//用于与wijgrid交互的公共类
function WijGridViewModel(){
var self=this;
self.data=ko.observableArray();
self.FilteredData=ko.observableArray();
return
{
Data:self.data,
FilteredData:self.FilteredData
}
}使用wijgrid
<table id="dataGrid" data-bind="wijgrid:{data:WijGridViewModel.FilteredData}">更新可观察字段时,将面临更新wijgrid的问题。有关这方面的任何帮助都是appreciated.Thanks
发布于 2012-12-21 13:49:43
可观察的函数是一个函数,因此要获得它的值,您可以称之为:
var value = item.LTP();要设置该值,需要将新值传递给方法:
item.LTP(newValue);因此,要只更新LTP,也许可以尝试这样做(如果没有完整的示例,很难准确地说):
ko.utils.arrayForEach(vm.WijGridViewModel.FilteredData(),function(item)
{
if(item.Symbol==newItem.Symbol)
{
item.LTP(newItem.LTP());
}
});https://stackoverflow.com/questions/13989099
复制相似问题