我正在使用 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});
到目前为止,我尝试了这个,它更新了一个 observable 但不更新一个 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 的问题。对此的任何帮助表示赞赏。谢谢