2016-11-29 62 views
0

我有3個dojo組合框。每個方法都有require方法,並且我爲每個方框執行相同的過程。當我把所有內容都放在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> 

有什麼辦法可以縮短這個時間嗎?

回答

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"); 
}); 

我不認爲這是有原因到不行,你所說的。可能你的代碼有問題。第一次嘗試時發現任何錯誤?

+0

感謝您的快速回答。我的錯誤是我試圖再次編寫'function(Memory,ComboBox){}'。再次感謝! – Eniss

相關問題