【发布时间】:2013-11-27 10:04:50
【问题描述】:
在一个最小的应用程序中使用 RequireJS 和 Backbone,我总是得到
Uncaught Error: Mismatched anonymous define() module
即使应用程序继续运行。这里是: https://assets.site44.com/admin/
我在 index.html 中包含 jQuery、下划线、主干,因为我想缩短每个视图/模型中的 define() 样板。
https://assets.site44.com/admin/js/main.js 包括
var l = console.log.bind(console)
var app
//l("AA")
require.config({
paths: {
// Major libraries
/*jquery: 'libs/jquery/jquery-min',
underscore: 'libs/underscore/underscore-min', // https://github.com/amdjs
backbone: 'libs/backbone/backbone-min', // https://github.com/amdjs
*/
// Require.js plugins
text: 'text'
}
})
function initApp() {
console.log("BB")
require([
'views/AppView'
], function(AppView){
l("CC")
app = new AppView()
$("#app").html(app.render())
})
}
$(document).ready(initApp)
我无法从文档或已回答的问题中找出问题: Mismatched anonymous define() module
谢谢
【问题讨论】:
-
您的代码有很多语法错误,尤其是缺少分号。我真的建议先把这些整理出来。也许取消注释到 jQuery、Underscore 和 Backbone 的路径,因为您的代码依赖于它们被包含在内,并将它们包含在您的
AppView和MyModeldefine()调用中。 -
嗨 Simon,我想避免在每个视图/模型/集合中定义 jQuery、Underscore 和 Backbone。我不确定您指的是什么语法错误——添加分号不会使该错误消失。
-
您不需要在每个视图、模型和集合中都定义它们,但您肯定需要在所有这些中定义 Backbone。如果您信任 JavaScript 固有的不可靠的自动分号插入功能,则可以省略分号。不过,不确定您为什么要这样做。这是难以跟踪的常见错误来源。
标签: javascript backbone.js requirejs