我尝试使用以下代码来使用require js
包含我的自定义js文件require.config({
waitSeconds: 0,
paths: {
underscore: 'underscore/underscore',
backbone: "backbone/backbone-min",
jquery: "jquery/jquery-min",
customhandler: "jquery/customhandler"
},
shim: {
underscore: {
deps: ['underscore'],
exports: '_'
}
}
});
创建了单独的文件customhandler.js
,里面我想使用backbone,jquery,underscore
define(['jquery','underscore','backbone'], function($,_,Backbone) {
//using jquery
var oldAjax = $.ajax;
$.ajax = function(options) {
console.log(options)
// Do your magic.
return oldAjax.apply($, arguments);
}
//need to use backbone,underscore here
});
但我仍然无法将其加载到我的应用程序中。请告知。
答案 0 :(得分:0)
jQuery
已经与AMD兼容,所以看起来你不能以这种方式来补充这种依赖。
从官方文件: http://requirejs.org/docs/api.html#config-shim
请记住:仅对非AMD脚本使用shim配置...
作为一种原始的解决方法,您可以返回另一个类似的对象:
return { ajax : $.ajax };
如果需要,可以更聪明。
答案 1 :(得分:0)
调用define
的模块不需要使用shim
。如果您对调用shim
的模块使用define
,则会得到未定义的行为。因此,这可能是您遇到问题的原因:删除jqueryajaxhandler
的垫片。