我正在尝试使用requirejs加载bootstrap和kendo-ui,但它们都依赖jquery来加载。
目前,所有三个脚本都在加载异步(来自CDN):
require.config({
paths: {
"jquery": [
"https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min",
"libs/jquery"
],
'bootstrap': [
'http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min',
'libs/bootstrap'
],
'kendo': [
'http://cdn.kendostatic.com/2014.1.416/js/kendo.ui.core.min',
'libs/kendo'
]
}
})
require(['jquery', 'bootstrap', 'kendo'], function () {
$('body').html('hi!')
})
如果在完全加载jquery之前如何才能加载其他脚本?
我认为有一种更好的方式:
require(['jquery'], function () {
require(['bootstrap', 'kendo'], function () {
$('body').html('hi!')
})
})
如果这种情况有效(我的头脑中)。
答案 0 :(得分:2)
尝试使用shim-option之类的,
require.config({
paths: {
'jquery': 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min',
'bootstrap': 'http://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min',
'kendo': 'http://cdn.kendostatic.com/2014.1.416/js/kendo.ui.core.min'
},
// Use shim for plugins that does not support ADM
shim: {
'bootstrap': ['jquery'],
'kendo': ['jquery']
}
});