我在使用来自跨Origin请求的jsonRest填充Combobox动态时遇到问题。
我发现有机会静态(我希望这是正确的词汇),但我不知道怎么做多个案例。因为这是一个更大的网站的一小部分有五个组合框。
这是代码
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 :(得分:0)
您也可以尝试以下方法。所以你需要“myArray.push({”WA“:obj [p]});”成为“myArray.push({some_global_variable:obj [p]});”。
请执行下列操作。
1.在推送方法
之前创建一个空的LOCAL对象
2.使用数组语法将属性分配给局部变量
3.将局部变量作为参数传递给push方法。
var localobj = {}; // step 1
localobj[global_var] = obj[p]; //step 2
myArray.push(localobj); // step 3
在使用
的push()之前,您可以检查全局变量的值console.log("My glogbal varible"+global_var);