2012-04-19 1 views
0

Dojo 툴킷을 사용하여 ajax 요청을 통해 외부 JSON 소스 (웹 서비스)에서 데이터를 가져옵니다. 이 검색된 데이터를 사용하여 ItemFileReadStore를 만든 다음 fetch 메서드를 사용하여 포함 된 개체의 일부 특성을 인쇄합니다. 당신이 볼 수 있듯이응답 데이터에 중첩 된 객체가있는 경우 ItemFileReadStore 가져 오기가 작동하지 않습니다.

[  
{ 
    "name":"michael", 
    "surname":"owen", 
    "reference": [ 
    { 
     "code":21, 
     "date":"01-01-2001" 
    }, 
    { 
     "code":134, 
     "date":"11-05-2011" 
    } 
    ] 
}, 
{ 
    "name":"robert", 
    "surname":"foreman", 
    "reference": [ 
    { 
     "code":33, 
     "date":"11-10-2009" 
    } 
    ] 
}, 
] 

"참조"두 가지 속성 각각에 객체의 배열은 다음과 같습니다

JSON 소스는 속성, 여기에 예를 내포하고있다.

문제 :이 데이터로 ItemFileReadStore를 만들고 가져 오려고하면 아무 것도 표시되지 않습니다. 나는 이것을 테스트 해 왔으며 중첩 된 객체없이 중첩 된 구조로 작동한다는 것을 확인했다.

아마 상점이 잘 만들어지지 않았다고 생각합니다. 의

코드 인출 :

var store = ItemFileReadStore({data: response}); 
store.fetch({ query: {'name': 'michael'}, onItem: function(item) { 
          console.log(store.getValue(item, 'surname')); 
         } 
        }); 

그래서, 질문은 : 어떻게 든 중첩 된 구조를 읽을 수 있을까요? 다른 종류의 가게와 어쩌면? 다른 구문을 사용합니까?

감사합니다.

답변

1

답변은 상점 사용 방법에 따라 다릅니다.

dojo.store API를 사용하면 함수를 쿼리로 전달할 수 있으며 함수에서 사용자 지정 필터링을 수행 할 수 있습니다.

http://dojotoolkit.org/features/1.6/object-store

그러나, 현재의 도장 위젯의 대부분은 여전히 ​​dojo.data API (ItemFileReadStore)를 사용합니다. 어댑터가 있지만 쿼리에 함수를 전달할 수 없습니다.

그리드와 같은 일부 위젯을 사용하면 직접 항목을 설정하고 쿼리 할 필요가 없습니다. 이 경우 새 저장소 API를 사용하여 항목을 쿼리하고 수동으로 그리드에 항목을 설정할 수 있습니다.

또한 dojox.json.query이 있지만 사용 해보지 않았습니다.

관련 문제