【问题标题】:get JSON object from knockout observable array by objects id通过对象 id 从敲除 observable 数组中获取 JSON 对象
【发布时间】:2014-02-08 06:21:48
【问题描述】:

除了显示简单字符串数组的 ko.observablearrays 的基本示例外,我什么也找不到。我有一个可观察的数组,它包含一个带有很多属性的较大的 JSON 对象。我需要根据数组中的 id 属性获取数组中的对象之一。我有这个代码来获取 ID:

self.selectedOrgId.subscribe(function (currentOrgId) {
    alert(currentOrgId);
}, self);

我的 observable 数组是通过 ajax get 请求填充的,看起来像这样:

[
{"userGuid":"37ab100e-f97b-462a-b3f4-79b8fbe24831",
"orgId":1,
"orgName":
"company ltd",
"isHiring":true,
...snip...}
   more...
]

如何查看我的数组并获取具有我拥有的 orgId 的对象?

【问题讨论】:

    标签: javascript arrays json knockout.js


    【解决方案1】:

    当您需要根据其 id 查找特定对象时,您可以使用ko.utils.arrayFirst,如下所示:

    var selectemItemID = '1';
    var selectemItem = ko.utils.arrayFirst(this.items(), function(i) {
        return i.orgId == selectemItemID;
    });
    

    但您也可以创建一个计算属性,根据所选项目 ID 返回所选项目。

    self.selectedItem = ko.computed({
        read : function(){
            return ko.utils.arrayFirst(this.items(), function(i) {
                return this.selectedOrgId() == i.orgId;
            });
       },
       owner : self
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      相关资源
      最近更新 更多