我有一个没有对象的数组,我正在尝试将数据添加到我的商店。我有这个:
options: [0:value,1:value]
当我知道我需要这个时:
options: [{0:value,1:value}]
有没有办法可以在dojo或JS中的某个实用程序中修改它?我无权更改Web服务。
答案 0 :(得分:0)
这甚至不是您要问的有效JSON或JavaScript语法,您可以定义对象,例如:
{ name: "value" }
或者您使用数组语法:
[ "value1", "value2", "value3" ]
在评论中有点令人费解之后我想你想用你的字符串数组作为dijit/form/FilteringSelect
的下拉项。
嗯,这确实可以通过将数组首先转换为对象数组来实现(因为通常需要小部件才能工作)。
翻译数组的最佳模块是dojo/_base/array:map()
函数。我们可以在你的案例中使用:
var output = arrUtils.map(input, function(item, idx) {
return {
label: item,
id: idx
};
});
这将翻译一个这样的数组:
[ 'value1', 'value2' ]
成:
[{ label 'value1', id: 0 }, { label: 'value2', id: 1 }]
然后您可以在dijit/form/FilteringSelect
中使用,例如:
new FilteringSelect({
store: new Memory({
data: output
}),
labelAttr: 'label',
searchAttr: 'label'
}, "mySelect");
哪个应该可以正常工作,正如您在以下小提琴中看到的那样:http://jsfiddle.net/au5Fr/
如果您需要商店,要回答您的问题,那么答案是肯定的。 dijit/form/FilteringSelect
没有名为options
的选项,据我所知,该选项只能在dijit/form/Select
上使用。