2016-04-15 97 views
0

我正在使用django-require,並且需要在我的html頁面中導入數據表和數據表響應(這是一個數據表的插件,使其更加靈敏)。 這裏的問題是,當我將所有路徑設置爲datatables.js和datatables.responsive.js時,最終的js有一個阻塞頁面中所有腳本的錯誤。基本上我認爲這是因爲datatables.responsive需要在數據表之前加載,因爲datatables引用了datatables.responsive中的函數。Django-require - 如何在另一個模塊之前加載模塊

其實我common.js文件是這樣的:

requirejs.config({ 
baseUrl: '../static/js', 
paths: { 
    "app" : 'app', 
    "jquery" : '../jquery/dist/jquery.min', 
    "datatables-responsive" : '../datatables.net-responsive/js/dataTables.responsive', 
    "datatables" : '../datatables.net/js/jquery.dataTables', 
    }, 
shim: { 
    "datatables-responsive" : ['jquery'], 
    "datatables" : ['datatables-responsive'], 
    } 
}); 

我試圖讓數據表響應數據表的依賴關係,而這是行不通的。有任何想法嗎?

PS:如果我只導入數據表數據表沒有響應它正常工作,沒有錯誤或其它問題

+1

您使用的是哪種版本的數據表?在我看來,目前的版本是AMD兼容的,因此不應該被削弱。 – DFriend

+0

嗨,我正在使用最新版本的datatables和datatables響應。感謝您的評論,我開始尋找正確的東西,我發現了這個問題。我會在一分鐘後發佈解決方案,謝謝! –

回答

0

我終於發現了問題,或者更好的問題。 Datatables已經是一個AMD模塊,並且不需要被修補,所以單獨使用它不是問題,問題是另一個:datatables響應。在我的研究中,我沒有找到任何提到數據表響應需要數據表以特定的方式。在我的requirejs配置中,我使用名稱「datatables」加載數據表,但是當您加載數據表時響應,在其代碼中需要「datatables.net」。 這是問題。數據表不需要被刪除,數據表沒有響應,沒有依賴或其他的東西,只需定義它們即可。必須說,數據表響應也需要名爲「jquery」的jQuery。只要看看下面的代碼,瞭解正確的方式將其導入:

requirejs.config({ 
    paths: { 
     "jquery" : './path/to/jquery/dist/jquery', 
     "datatables.responsive" : './path/to/datatables.net-responsive/js/dataTables.responsive', 
     "datatables.net" : './path/to/datatables.net/js/jquery.dataTables', 
    }, 
}); 
在init文件

然後(或者不管你叫它),您將它們導入像這樣:

define(['jquery','datatables.net','datatables.responsive'], function($, datatables) { 

    $(document).ready(function() { 
     $('#datatable').DataTable({ 
      responsive: true, 
     }); 
    }); 

}); 

FINISH !現在你有一個完整的工作datatables需要擴展(可能這個作品也包括其他插件)。 希望這可以幫助某人,並對任何英語錯誤抱歉,我是意大利人。

+0

Grazie per la condivisione la vostra soluzione。我的意大利人怎麼樣? (你的英文很好。) – DFriend

+0

謝謝,你的意大利語不是那麼糟糕,但正確的句子是「Grazie per aver condiviso la vostra soluzione」:) –