三分之一时我得到“骨干未定义错误”。它指向requirejs文件中的第19行(路由器在路径第21行中声明)。有时主干的加载速度足够快,有时则没有。我不知道我做错了什么。下面是requirejs文件的一部分和初始化。
require.config({
paths: {
//libs
jquery: '../../bower_components/jquery/dist/jquery.min',
// "jquery-ui": '../bower_components/jquery-ui/jquery-ui.min',
lodash: '../../bower_components/lodash/lodash',
backbone: '../../bower_components/backbone/backbone-min',
underscore: '../../bower_components/underscore/underscore-min',
gridstack: '../../libs/gridstack/dist/gridstack',
text: '../../bower_components/text/text',
router: '/client/js/router/router',
//other modules ...
}
shim: {
"backbone": {
deps: ['underscore','jquery'],
exports: "backbone"
},
"underscore": {
exports: "_"
},
"jquery": {
exports: "$"
},
"gridstack": {
deps: ['jquery','underscore'],
exports: "Gridstack"
}
});
require([
'jquery', 'backbone', 'lodash', 'router',
], function( $, Backbone, _, Router){
new Router();
Backbone.history.start();
});
以下是我的路由器的声明方式:
define('router',['appView'] , function(AppView) {
var router = Backbone.router.extend({
// etc/
答案 0 :(得分:0)
我看到的一个错误是在RequireJS配置中的Backbone垫片中。不支持RequireJS的较旧版本的Backbone将导出全局变量Backbone
,而不是backbone
。所以...
"backbone": {
deps: [ 'underscore', 'jquery' ],
exports: 'Backbone'
}
请注意,1.1.1
之后的任何版本的BackboneJS都支持AMD风格的模块,因此如果您使用的是最新版本,则根本不需要垫片。事实上,使用支持AMD的版本,但错误地声明了垫片,可能导致1-in-3失败......但是我必须看到一个正在运行的例子要确定无疑。