RequireJS不会加载依赖项

时间:2014-07-24 12:04:26

标签: javascript requirejs

问题: 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;
});

1 个答案:

答案 0 :(得分:1)

应用程序/ TodoItem.js

define([], function() {
    // backbone model etc..
});

不要命名你的模块,requireJS会使用文件夹结构来获取它。在这种情况下,requireJS将从app / TodoItem.js中获取它。

如果您使用优化程序,它会自动为您命名。