2014-01-18 4 views
0

단순 문자열 배열을 표시하는 ko.observablearrays의 기본 예제 외에는 찾을 수 없습니다. 대규모의 JSON 객체를 보유하고있는 관찰 가능한 배열을 가지고 있습니다. 배열의 id 속성을 기반으로 배열의 객체 중 하나를 가져와야합니다. 나는 ID를 가져이 코드를 가지고 :개체별로 녹아웃 관측 가능 배열에서 JSON 개체 얻기 ID

내 관찰 배열은 아약스 GET 요청을 통해 채워과 같은 것을 보인다
self.selectedOrgId.subscribe(function (currentOrgId) { 
    alert(currentOrgId); 
}, self); 

:

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

가 어떻게 내 배열로보고 객체를 얻을 수 있습니다 내가 가지고있는 조직과 함께? 당신이 해당 ID에 따라 특정 개체를 찾을해야하는 경우

답변

3

당신은 다음과 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 
}); 
관련 문제