2014-06-23 1 views
1

데이터 소스를 json 형식으로 데이터 스토어로 선택하려고하지만 데이터 소스의 텍스트가 아닌 드롭 다운에 상자 만 나타납니다. 데이터 저장소는 데이터베이스에서 가져온 및 형식에 있습니다 :json 데이터 스토어로 설정할 때 데이터 소스가 나타나지 않습니다.

{ 
    "GetReachesResult":[ 
     { 
      "reach":"CRC" 
     }, 
     { 
      "reach":"IV" 
     }, 
     { 
      "reach":"IVA" 
     }, 
     { 
      "reach":"IVB" 
     }, 
     { 
      "reach":"IVD" 
     }, 
     { 
      "reach":"IVE" 
     }, 
     { 
      "reach":"V" 
     } 
    ] 
} 

드롭 다운의 저장소를 설정하려고 코드의 모듈은 다음과 같습니다

define(['dojo/store/Memory', 'dojo/_base/xhr', "dojo/data/ObjectStore"], 
//functions to get data and fill data stores 
function (Memory, xhr, ObjectStore) { 
    return { 
     GetReaches: function (url) { 
      xhr.get({//get data from database 
       url: url, 
       //url: url, 
       handleAs: "json", 
       load: function (result) { 
        var ReachData = result.GetReachesResult; //GetReachesResult is default reach of GetReaches Method 
        var ReachStore = new Memory({ data: ReachData }); 
        var oReachStore = new ObjectStore({ objectStore: ReachStore }); 
        DD.setStore(oReachStore); 
       }, 
       error: function (err) { } 

      }); 
     } //GetReaches 
    } 
}); 

메인 페이지에서 호출 모듈은 다음과 같습니다.

.... 
     DD = new Select({ 
      style: { width: '250px' } 
     }, "DropDownDiv"); 
     DD.startup(); 
     var myButton = new Button({ 
      label: "Get Data", 
      onClick: function() { 
       Data.GetReaches(dataServiceUrl); 
      } 
     }, "ButtonDiv"); 

}); 

아이디어가 있습니까? 감사합니다

답변

1

reach 속성을 label으로 변경하여 오류를 해결했음을 확인했습니다. 그러나 예를 들어, labelAttr 속성을 사용하여 라벨에 사용되는 속성을 구성 할 수 있습니다 http://jsfiddle.net/5JKx6/

가장 좋은 방법 :이 JSFiddle에서 볼 수

DD = new Select({ 
    style: { width: '250px' }, 
    labelAttr: 'reach' 
}, "DropDownDiv"); 

이뿐만 아니라 잘 작동합니다 이러한 속성을 학습하는 것은 API documentation을 살펴 보는 것입니다.

1

문제는 내 json 데이터였습니다. 개체 특성 이름을 'reach'에서 'label'로 변경하는 데 필요한 데이터를 표시하기위한 선택에 문제가있었습니다. 추측 Select는 이름 라벨이있는 속성 만 표시합니다

관련 문제