2016-11-29 5 views
0

私は3つの道場コンボボックスを持っています。それぞれは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

関連する問題