加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

KnockoutJS更新observableArray AJAX的正确方法

发布时间:2020-12-15 23:13:08 所属栏目:百科 来源:网络整理
导读:在KnockoutJS中,每次运行 AJAX命令时,更新observableArray的 JSON数据的正确方法是什么? 现在,我使用viewmodel.items([])之类的东西来消隐数组,然后用来自服务器的JSON数据重新填充它.没有使用KnockoutJS映射插件(这可能是唯一的方法),正确的路径是什么?
在KnockoutJS中,每次运行 AJAX命令时,更新observableArray的 JSON数据的正确方法是什么?

现在,我使用viewmodel.items([])之类的东西来消隐数组,然后用来自服务器的JSON数据重新填充它.没有使用KnockoutJS映射插件(这可能是唯一的方法),正确的路径是什么?

我的服务器逻辑每次都会发送一些相同的数据,所以我不能只是迭代并将项目推送到数组中,除非我想要重复.

////添加我今天的表现////

我不知道为什么我这样做,但这就是我最初想出如何更新的方式.所以基本上,就像我之前说过的,我得到JSON数据,然后我把它传递给这样的东西:

_model.addIncident = function (json) {
       var checked = json.UserTouches > 0 ? true : false;
       _model.incidents.push({
          id: ko.observable(json.IncidentIDString),lastTouchId: ko.observable(json.UserLastTouchIDString),weight: ko.observable(json.Weight),title: ko.observable(json.Title),checked: ko.observable(checked),createdOn: ko.observable(json.IncidentCreatedOn),servicename: ko.observable(json.Servicename),inEdit: ko.observable(false),incidentHistory: ko.observableArray(),matchScore: ko.observable()
      });
   };

对于JSON数组中的每个节点.正如您所看到的,我在那里有一些自定义的observable,可以使用每个传递的数据进行构建.也许这是错误的方式,但直到现在它仍然很好用.

解决方法

observableArray实际上只是一个普通的observable,带有一些额外的数组操作方法.

因此,如果要将observableArray的值设置为新数组,则可以执行以下操作:

viewModel.items(myNewArray)

映射插件可以帮助您使用任何更新来更新阵列中的现有项目.在这种情况下,您的UI只会根据任何差异进行更新.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读