requireJS中的Backbone.js + underscore.js + jQuery ......这是正确的方法吗?

gre*_*emo 1 jquery requirejs backbone.js underscore.js

我正在尝试更多地了解requireJS.所以,如果我理解正确,那么下面的代码应该是合法的.这是使我的应用程序模块化的正确方法吗?

这就是application.js,在data-main属性点:

requirejs.config({
    baseUrl: 'scripts/vendor', // By default, load all from vendor folder
    shim: {
        'backbone' : { // Do not support module loading
            deps: ['underscore', 'jquery'], // Do not support module loading
            exports: 'Backbone' 
        },
    },
    paths: {
        models: '../application/models', // Load from this folder if starts with user
        views: '../application/views',   // As above...
    }
});

requirejs(['jquery', 'backbone', 'views/user'], function($, Backbone, UserView) {
});
Run Code Online (Sandbox Code Playgroud)

我的视图/模型模块(现在很无用):

档案application/views/user.js:

// underscore should be loaded now
define(['jquery', 'backbone', 'models/user'], function($, Backbone, User) { 
    return Backbone.View.extend({
        model: User,

        el: $('tr'),    

        initialize: function() {}
    });
});
Run Code Online (Sandbox Code Playgroud)

档案application/models/user.js:

define(['backbone'], function(Backbone) { // underscore should be loaded now
    return Backbone.Model.extend({
    });
});
Run Code Online (Sandbox Code Playgroud)

tbr*_*yen 5

你也需要shim下划线,因为它不兼容AMD.

 underscore: {
  exports: '_'
}
Run Code Online (Sandbox Code Playgroud)

我建议查看https://github.com/tbranyen/backbone-boilerplate/因为使用RequireJS需要很多麻烦.