2014-01-18 37 views
0

我找不到任何東西,只是顯示簡單字符串數組的ko.observablearrays的基本示例。我有一個可觀察的數組,其中包含具有很多屬性的大型JSON對象。我需要根據數組中的id屬性獲取數組中的一個對象。我有這樣的代碼來獲取編號:從對象中敲除可觀察數組得到JSON對象id

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

我觀察到的陣列通過一個Ajax GET請求填充,看起來是這樣的:

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

我怎麼能看着我的陣列和獲取對象與我擁有的orgId?

回答

3

當你需要找到基於其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 
}); 
相關問題