2013-03-15 30 views
0

我只是想知道,這只是一個普遍的問題,是搔癢我的大腦。上面的Dojo 1.7使用AMD模塊,這是調用小部件和幫助類的好方法。Dojo請求一個AMD模塊並回撥

問題以正常的方式來調用與調用類或AMD模塊背部看起來象下面這樣:

require(['dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ItemFileWriteStore', 'dojo/dom', 'dojo/domReady!'], 
    function(lang, DataGrid, ItemFileWriteStore, dom){ 

這樣我打電話與呼叫郎,DataGrid和ItemFileWriteStore模塊背面的功能使用這些模塊,一些模塊沒有回調,比如dojo/domReady !.

那麼在調用模塊的順序中是否存在差異或會導致錯誤?或者重要的部分是讓它們在需求和功能上具有相同的順序。但首先打電話並不重要?

回答

2

我不確定你在問什麼。但函數中的參數應與您導入的模塊名稱的順序/順序相同(如給出的示例中所示)。

如果模塊沒有返回一個對象(如domReady),建議將它作爲最後一個模塊,因爲它們大多數仍然返回一些東西(如HTML文檔或函數或其他東西)。

你當然也可以將它們添加任何你想要的,但如果你將切換dojo/domdojo/domReady!,那豈不是變量dom將不再包含的代碼dojo/dom但對於其它模塊(沒有對象)。 這意味着你必須做一些事情,如:

require(['dojo/_base/lang', 'dojox/grid/DataGrid', 'dojo/data/ItemFileWriteStore', 'dojo/domReady!', 'dojo/dom'], 
    function(lang, DataGrid, ItemFileWriteStore, placeholder, dom){ 

placeholder沒有實際使用。

0

我想你可能會誤解某些東西,或者我誤解了你的意思。

define()函數有兩個參數:

  • 是依賴模塊名稱的數組
  • 需要這些依賴

該模塊或模塊名稱的回調函數本身不回調,回調函數是你編寫的函數,當所有的模塊都被加載後會被觸發。

正如Demitri M所說,在回調函數結束時放置不返回值的模塊是有意義的,因爲這樣可以縮短參數列表。