无法调用未定义的方法'bind' - Backbone LayoutManager

时间:2013-11-09 23:35:23

标签: backbone.js requirejs backbone-layout-manager

我不明白我做错了什么。我正在尝试在我的应用程序中使用Backbone LayoutManager,下面的简单代码会导致错误:'无法调用方法'bind'of undefined'

这是我的main.js文件:

require.config({
    paths: {
        jquery: 'libs/jquery',
        underscore: 'libs/underscore',
        backbone: 'libs/backbone',
        layoutManager: 'libs/backbone.layoutmanager',
        knockout: 'libs/knockout',
        templates: '../templates'
    },

    shim: {

        backbone: {
            deps: ['jquery','underscore'],
            exports: 'Backbone'
        },
        layoutManager: {
            deps: ['jquery','underscore', 'backbone'],
            exports: 'LayoutManager'
        }
    }

});

require([
    'app',
    'backbone',
    'layoutManager'
], function(App, Backbone, LayoutManager) {

        // Set all Views to be managed by LayoutManager.
    Backbone.Layout.configure({ manage: true });

    App.initialize();

});

知道是什么导致了这个错误吗?

1 个答案:

答案 0 :(得分:0)

根据您正在使用的LayoutManager的版本,可能是您的填充错误。最新的LayoutManager支持AMD,所以垫片是不必要的。

正如@ kryger对您收到的评论所述,请确保下划线已正确填充。我愿意打赌那是你的问题。

shim: {
    backbone: {
        deps: ['jquery', 'underscore'],
        exports: 'Backbone'
    },

    underscore: { exports: '_' }
}

您还可以查看配置AMD的文档:https://github.com/tbranyen/backbone.layoutmanager/wiki/Installation#asynchronous-module-definition-amd

^^我已经更新了上面的内容以包含下划线填充线。