首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Knockout和JayData拉到刷新

使用Knockout和JayData拉到刷新
EN

Stack Overflow用户
提问于 2012-12-12 12:45:01
回答 2查看 377关注 0票数 1

我正在用Knockout.jsJayData开发Knockout.js应用程序,在实现拉式刷新数据列表时遇到了一个问题。

我使用OData API查询远程JayData服务,并将结果分配给KO observable数组:

代码语言:javascript
复制
db.MySet
  .orderBy('it.Field1')
  .skip(recordsToSkip)
  .take(20)
  .toArray()
  .then(function(result) {
     self.MyDataList(result);
  }

我总是丢掉旧唱片。我怎么才能修正我的代码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-12 13:02:55

我想,在将结果绑定到可观察的Knockout时,可能遗漏了一件小事情:检查现有数组是否已经包含元素,并将结果附加到现有的元素中。

我的同事Viktor有一个教程,它用Knockout+JayData拉式刷新实现高分列表

代码语言:javascript
复制
db.MySet
  .orderBy('it.Field1')
  .skip(recordsToSkip)
  .take(20)
  .toArray()
  .then(function(result) { 
     if (result.length){
       if (self.MyDataList().length){
            self.MyDataList(self.MyDataList().concat(result));
       }else{
            self.MyDataList(result);
       }
    }
   });

这能修复这个应用程序吗?该示例的完整上下文可在GitHub上找到。

票数 1
EN

Stack Overflow用户

发布于 2012-12-12 12:58:57

您需要将新的对象数组连接到旧列表中:

代码语言:javascript
复制
.then(function(result) {
    oldList = oldList.concat(result);
    self.MyDataList(oldList);
}

(因此,在第一次运行时,需要设置oldList = [])

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13840108

复制
相关文章

相似问题

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