2014-06-24 2 views
0

크로스 원점 요청에서 jsonRest로 Combobox 다이내믹을 채우는 데 문제가 있습니다.dynamic json to combobox dojo

나는 그것을 정적으로 할 수있는 기회를 찾았지만 (나는 이것이 올바른 어휘가되기를 바란다.) 하나 이상의 경우에 그것을하는 법을 알지 못했다. 이것은 더 큰 웹 사이트의 일부분이기 때문에 다섯 Comboboxes.

가 여기 내 문제가 여기에 코드를

require([ 
"dojo/_base/array", 
"dojo/store/Memory", 
"dojo/store/JsonRest", 
"dijit/form/ComboBox", 
"dojo/store/Cache", 
"dojo/store/Observable", 
"dijit/form/Textarea", 
"dojo/domReady!" 
], 

function(array, Memory, JsonRest, ComboBox, Cache, Observable, Textarea){ 

var myArray = new Array; 
var myStore = new Observable (new Cache (new JsonRest ({ 
      target: “URL/target”, 
      idProperty: "WA", 
      headers: { "X-Requested-With": "" } 
     }), new Memory())); 
var myTextarea = new Textarea ({ 
    name: "myarea", 
    style: "width:200px;" 
}, "myarea"); 
myStore.query().then(function(response){ 
      }); 

store = new Memory({data: myArray});  //Store anlegen ... mit Array befüllen 

var comboBoxWA = new ComboBox({ 
    id: "comboWA", 
    name: "WA", 
    value: "", 
    store: store, // übergabe angelegter Store zu Combobox 
    searchAttr: "WA" 
}, "comboWA"); 

// Array befüllen,.. Store anlegen,... Array dem Store zuweisen 
myStore.query().then(function(response){ 
    dojo.forEach(response, function(obj) { 
     for (var p in obj) { 
      if(p=="WA"){ 

//있어, 나는 몇 가지 글로벌 변수에 myArray.push에서 "WA"를 변경할 수 없습니다.

   myArray.push({"WA" : obj[p]}); //Array befüllen 
       console.debug(myArray.toSource()); 
     }} 
     }); 
     }); 
}); 

JSON 응답이 [대상 {WA = 'WA_30_14 "}, 개체 {WA ="WA_30_12 "}, 개체 {WA ="WA_30_10 "}과 같은, 개체 {WA ="WA_30_16 " }, ...]

누구 아이디어 또는 나를 위해 간단한 예 감사 되세요, 게오르그

+0

당신이) myArray.push "필요합니까 사용하여 푸시()를 사용하기 전에 전역 변수의 값을 확인할 수 있습니다; " "myArray.push ({some_global_variable : obj [p]});"가됩니다. 그렇다면 전역 변수를 decalre하여 "myArray.push ({some_global_variable : obj [p]});"문으로 추가하십시오. 작동해야합니다. some_global_variable 주위에 따옴표를 넣지 마십시오. push 메소드를 사용하기 전에 전역 변수의 값을 확인할 수 있습니다. console.log ("My glogbal varible"+ some_global_variable)를 사용하여 변수 값을 확인하십시오. – frank

+0

아래의 방법을 사용해 볼 수도 있습니다. 위의 경우 작동하지 않습니다. "myArray.push ({"WA ": obj [p]});" "myArray.push ({some_global_variable : obj [p]});"가됩니다. 다음을 수행하십시오. 1. 푸시 메소드 앞에 빈 LOCAL 객체를 생성하십시오. 2. 로컬 변수에 속성을 할당하기위한 배열 구문을 사용하십시오. 3. 푸시 메소드에 대한 매개 변수로 로컬 변수를 전달하십시오. var localobj = {}; // step 1 localobj [global_obj] = obj [p]; // 2 단계 myArray.push (localobj); // step 3 console.log ("My glogbal varible"+ global_variable) – frank

+0

을 사용하여 push()를 사용하기 전에 전역 변수의 값을 확인할 수 있습니다. 문제가있는 경우 : "myArray.push ({some_global_variable : obj [피]});" [Object {some_global_variable = "MB_30_14"}, Object {some_global_variable = "MB_30_12"}, ... – user3770651

답변

0

당신은 또한 ""myArray.push ({ "WA 필요하므로 아래의 방법을 시도 할 수 있습니다 :?. OBJ [
1. 빈 LOCAL obje를 만듭니다. (예 : myArray.push ({some_global_variable : obj [p]}); ct 푸시 방법 앞에
2. 로컬 변수에 속성 ​​할당을위한 배열 구문을 사용하십시오.
3. 푸시 방법에 대한 매개 변수로 로컬 변수를 전달하십시오. "({"WA : OBJ [P]}

var localobj = {}; // step 1 
localobj[global_var] = obj[p]; //step 2 
myArray.push(localobj); // step 3 

당신은

console.log("My glogbal varible"+global_var);