2014-06-24 72 views
0

我有一個填充組合框動態與jsonRest從一個交叉源請求的問題。動態json到組合框dojo

我發現有機會做到這一點靜態(我希望這是正確的詞彙表),但我不知道如何做到多於一個case.Because這是一個較大的網站的一小部分與五個組合框。

下面的代碼

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(「我的glogbal變量」+ some_global_variable)來檢查變量的值。 – frank

+0

你也可以嘗試下面的方法。如果上述不行,你需要「myArray.push({」WA「:obj [p]});」成爲「myArray.push({some_global_variable:obj [p]});」。 執行以下操作。 1.在推送方法之前創建一個空的LOCAL對象 2.使用數組語法將該屬性分配給本地變量 3.將局部變量作爲參數傳遞給push方法。 var localobj = {}; //步驟1 localobj [global_obj] = obj [p]; //第2步 myArray.push(localobj); //步驟3 您可以在使用push()前檢查全局變量的值,使用console.log(「我的glogbal變量」+ global_variable) – frank

+0

問題是:如果我寫「myArray.push({some_global_variable:obj [p]});」它寫[對象{some_global_variable =「MB_30_14」},對象{some_global_variable =「MB_30_12」},... – user3770651

回答

0

你也可以試試下面的方法,所以你需要「myArray.push({」 WA」:?OBJ [ 「;」要成爲「myArray.push({some_global_variable:obj [p]});」。 執行以下操作:
1.創建一個空的LOCAL對象ct推送方法前
2.使用數組語法將屬性分配給本地變量
3.將局部變量作爲參數傳遞給push方法。 「({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);