我有3个dojo组合框。每个方法都有require
方法,我为每个方框执行相同的过程。当我将所有内容都放在require
方法中时,没有任何作用,所以我需要创建require
方法3次。
<script>
.....
require([
"dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"
], function (Memory, ComboBox) {
var roomStore = new Memory({
data: [
{name: "1", id: "1"},
{name: "2", id: "2"},
{name: "3", id: "3"},
{name: "4", id: "4"},
{name: "5", id: "5"},
{name: "6", id: "6"},
{name: "7", id: "7"},
{name: "8", id: "8"},
{name: "9", id: "9"},
{name: "10", id: "11"},
{name: "11", id: "11"},
{name: "12", id: "12"},
{name: "13", id: "13"},
{name: "14", id: "14"},
{name: "15", id: "15"},
{name: "16", id: "16"},
{name: "17", id: "17"},
{name: "18", id: "18"},
{name: "19", id: "19"},
{name: "20", id: "20"}
]
});
var comboBox = new ComboBox({
id: "roomSelect",
name: "room",
value: "0",
store: roomStore,
searchAttr: "name",
style: {width: "45px"}
}, "roomSelect");
});
require([
"dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"
], function (Memory, ComboBox) {
var adultStore = new Memory({
data: [
{name: "1", id: "1"},
{name: "2", id: "2"},
{name: "3", id: "3"},
{name: "4", id: "4"},
{name: "5", id: "5"},
{name: "6", id: "6"},
{name: "7", id: "7"},
{name: "8", id: "8"},
{name: "9", id: "9"},
{name: "10", id: "10"},
{name: "11", id: "11"},
{name: "12", id: "12"},
{name: "13", id: "13"},
{name: "14", id: "14"},
{name: "15", id: "15"}
]
});
var comboBox = new ComboBox({
id: "adultSelect",
name: "adult",
value: "0",
store: adultStore,
searchAttr: "name",
style: {width: "45px", left: "5px"}
}, "adultSelect");
});
require([
"dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"
], function (Memory, ComboBox) {
var childStore = new Memory({
data: [
{name: "1", id: "1"},
{name: "2", id: "2"},
{name: "3", id: "3"},
{name: "4", id: "4"},
{name: "5", id: "5"},
{name: "6", id: "6"},
{name: "7", id: "7"},
{name: "8", id: "8"},
{name: "9", id: "9"},
{name: "10", id: "10"}
]
});
var comboBox = new ComboBox({
id: "childSelect",
name: "child",
value: "0",
store: childStore,
searchAttr: "name",
style: {width: "45px", left: "5px"}
}, "childSelect");
});
</script>
有没有办法让它更短?
答案 0 :(得分:0)
不,你不需要。您可以在同一个函数中创建所有组合框。示例如下。
<script>
.....
require([
"dojo/store/Memory", "dijit/form/ComboBox", "dojo/domReady!"
], function (Memory, ComboBox) {
var roomStore = new Memory({
data: [
{name: "1", id: "1"},
{name: "2", id: "2"},
{name: "3", id: "3"}
]
});
var comboBox = new ComboBox({
id: "roomSelect",
name: "room",
store: roomStore,
searchAttr: "name"
}, "roomSelect");
var childStore = new Memory({
data: [
{name: "1", id: "1"},
{name: "2", id: "2"},
{name: "3", id: "3"}
]
});
var comboBox2 = new ComboBox({
id: "childSelect",
name: "child",
store: childStore,
searchAttr: "name"
}, "childSelect");
});
正如你所提到的,我认为没有理由不这样做。可能是你的代码出了问题。你第一次尝试时发现了任何错误?