每次创建新组合框时都需要调用 require 方法吗?
Do I need to call require method each time I create new combobox?
我有 3 个道场组合框。每个都有 require
方法,我对每个盒子都执行相同的过程。当我将所有内容放入 require
方法时,没有任何效果,所以我需要创建 3 次 require
方法。
<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>
有什么方法可以缩短它吗?
不,你不需要。您可以在同一个函数中创建所有组合框。示例如下。
<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");
});
正如您所提到的,我不认为这有任何不起作用的理由。您的代码中可能有问题。第一次尝试时发现错误了吗?
我有 3 个道场组合框。每个都有 require
方法,我对每个盒子都执行相同的过程。当我将所有内容放入 require
方法时,没有任何效果,所以我需要创建 3 次 require
方法。
<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>
有什么方法可以缩短它吗?
不,你不需要。您可以在同一个函数中创建所有组合框。示例如下。
<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");
});
正如您所提到的,我不认为这有任何不起作用的理由。您的代码中可能有问题。第一次尝试时发现错误了吗?