首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新ko.observable不反映使用敲除的UI

更新ko.observable不反映使用敲除的UI
EN

Stack Overflow用户
提问于 2012-12-21 11:14:40
回答 1查看 375关注 0票数 0

我使用wizmo网格并绑定到作为StockData创建的模型:

//我的意见模式:

代码语言:javascript
复制
function StockData(data)
{
var self=this;
self.Symbol = data.Symbol;
self.LTP=ko.observable(data.LTP);
};

//在ajax服务调用成功后添加数据

代码语言:javascript
复制
    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。下面我尝试将整个新项目替换为旧项目,并注意到使用大量的数据和实时的数据给了我性能问题

代码语言:javascript
复制
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 :

代码语言:javascript
复制
ko.utils.arrayForEach(vm.WijGridViewModel.FilteredData(),function(item)
{
  if(item.Symbol==newItem.Symbol)
{
  item.LTP= newItem.LTP;
}
});

//用于与wijgrid交互的公共类

代码语言:javascript
复制
function WijGridViewModel(){
var self=this;
self.data=ko.observableArray();
self.FilteredData=ko.observableArray();
return
{
Data:self.data,
FilteredData:self.FilteredData
}
}

使用wijgrid

代码语言:javascript
复制
<table id="dataGrid" data-bind="wijgrid:{data:WijGridViewModel.FilteredData}">

更新可观察字段时,将面临更新wijgrid的问题。有关这方面的任何帮助都是appreciated.Thanks

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-21 13:49:43

可观察的函数是一个函数,因此要获得它的值,您可以称之为:

代码语言:javascript
复制
var value = item.LTP();

要设置该值,需要将新值传递给方法:

代码语言:javascript
复制
item.LTP(newValue);

因此,要只更新LTP,也许可以尝试这样做(如果没有完整的示例,很难准确地说):

代码语言:javascript
复制
ko.utils.arrayForEach(vm.WijGridViewModel.FilteredData(),function(item)
{
  if(item.Symbol==newItem.Symbol)
  {
    item.LTP(newItem.LTP());
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13989099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档