问题:
require.js将我的模块加载为undefine
s。
简要说明:
如果您查看main.js
文件,您会发现它具有TodoItem
依赖关系。它是undefine
。关键是,TodoItem
模块的主体永远不会被调用。
问题:
为什么require.js不会执行TodoItem
正文并加载undefine
?
我的结构:
index.html
js/
|-main.js
|-app/
|-TodoItem.js
|-libs/
|-backbone
|-requirejs
|-underscore
main.js
require([
'app/TodoItem'
], function (TodoItem) {
//PROBLEM: TodoItem is 'undefined'
});
TodoItem.js
define('TodoItem', [], function() {
//Body is never called!
var TodoItem = Backbone.Model.extend({
validate: function(attrs, options) {
if (!attrs.todoMessage)
return 'TodoItem without todo message';
}
});
return TodoItem;
});
答案 0 :(得分:1)
应用程序/ TodoItem.js
define([], function() {
// backbone model etc..
});
不要命名你的模块,requireJS会使用文件夹结构来获取它。在这种情况下,requireJS将从app / TodoItem.js中获取它。
如果您使用优化程序,它会自动为您命名。