插件幾乎總是堅持在jQuery之前加載。而且他們不應該這樣做,因爲我使用了墊片設置。RequireJS不適用於Shim'ed jQuery插件
在我main.js我有以下設置:
requirejs.config({
paths: {
'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min',
'bootstrap': '../bootstrap/js/bootstrap.min',
'select2': 'vendor/select2',
'jshashtable': 'vendor/jshashtable-2.1',
'jquery.numberformatter': 'vendor/jquery.numberformatter-1.2.3.min',
'jq-datepicker': 'vendor/bootstrap-datepicker',
'jq-datepicker.da': 'vendor/bootstrap-datepicker.da'
},
// Use shim for plugins that does not support ADM
shim: {
'bootstrap': ['jquery'],
'select2': ['jquery'],
'jq-datepicker': ['jquery'],
'jshashtable': ['jquery'],
'jquery.numberformatter': ['jquery', 'jshashtable']
},
enforceDefine: true
});
在這個文件中,我有以下之後:
// Start the main app logic.
requirejs(['jquery', 'bootstrap', 'jq-datepicker'],
function ($) {
console.log('Require.JS loaded');
// Init datepickers
// Docs: https://github.com/eternicode/bootstrap-datepicker
$('.datepicker').datepicker({
format: 'dd/mm/yyyy',
language: 'da',
keyboardNavigation: false,
autoclose: true
});
});
但我得到這個錯誤,所有的時間:
Uncaught TypeError: undefined is not a function bootstrap.min.js:6
(anonymous function) bootstrap.min.js:6
(anonymous function)
我可以在我的Chrome網絡標籤中看到它在jQuery之前加載。
現在我試着添加enforceDefine: true
之後,在這裏查看stackoverflow,但沒有運氣。我試着將requirejs.config移動到我的html頁面。我嘗試從本地文件加載jQuery。所有沒有運氣。
我錯過了什麼?
我測試過的例子,並沒有看到任何問題:http://jsfiddle.net/asgoth/tHkHw /我刪除了enforceDefine和jq-datepicker.da(無法找到它) – asgoth