除了显示简单字符串数组的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获取对象?
答案 0 :(得分:4)
如果您需要根据其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
});