0

次のエラーが表示されます

uncaught exception: Please include Backbone.ModelBinder.js before Backbone.CollectionBinder.js

した後

node r.js -o build.js

私のbuild.jsファイルは

({    
    "mainConfigFile": 'js/main.js',
    "name": "main", 
    "include": [
        "lib/require/require-with-comments.js"
    ], 
    "exclude": [], 
    "optimize": "uglify2", 
    "out": "main-built.js", 
    "insertRequire": [
        "js/main"
    ]
})

私の必要な設定は次のとおりです

require.config({
    // The shim config allows us to configure dependencies for
    // scripts that do not call define() to register a module
    urlArgs: "bust=" + (new Date()).getTime(),    
    shim: {
        'underscore': {
            exports: '_'
        },
        'bootstrap': {
            deps: [
                'jquery'
            ]
        },
        'backbone': {
            deps: [
                'underscore',
                'jquery'
            ],
            exports: 'Backbone'
        }, 'handlebars': {
            exports: 'Handlebars'
        }, 'handlebarsview': {
            deps: [
                'backbone',
                'handlebars'
            ],
            exports: 'HandlebarsView'
        }, 'highcharts': {
            deps: [
                'jquery'
            ],
            exports: 'highcharts'
        }
        , 'collectionbinderview': {
            deps: [
                'backbone',
                'jquery',
                'underscore',
                'modelbinderview'
            ]
        }, 'purl' : {
            deps : ['jquery']
        }
        , 'select2': {
            deps: [
                'jquery'
            ],
            exports: 'select2'
        }
        , 'customSelect': {
            deps: [
                'jquery'
            ],
            exports: 'customSelect'
        }
        , 'datepicker': {
            deps: [
                'jquery',
                'momentjs'
            ],
            exports: 'datepicker'
        }
    },
    paths: {
        jquery: 'lib/jquery/jquery.min',
        bootstrap: 'lib/bootstrap/bootstrap',
        underscore: 'lib/lodash/lodash.min',
        backbone: 'lib/backbone/backbone',
        text: 'lib/require/text',
        handlebars: 'lib/view/hacked-handlebars-1.0.0',
        handlebarsview: 'lib/view/backbone.handlebars',
        collectionbinderview: 'lib/view/Backbone.CollectionBinder',
        modelbinderview: 'lib/view/Backbone.ModelBinder',        
        highcharts: 'lib/charting/highcharts',
        momentjs: 'lib/view/moment',
        select2: 'lib/select2/select2',
        customSelect: 'lib/customSelect/customSelect',
        datepicker: 'lib/view/datepicker',
        purl : 'lib/purl/purl'
    }
});

誰が私が何を間違っているのか教えてもらえますか?

4

2 に答える 2

0

この問題は、CollectionBinder がロードされるとすぐに実行されたために発生しましたが、ModelBinder は AMD であり、まだ定義されていませんでした。つまり、CollectionBinder は AMD ライブラリではありませんでした。

次の問題から上記の解決策を得ました:
https://github.com/theironcook/Backbone.ModelBinder/pull/111
とコミットは https://github.com/rweng/Backbone.ModelBinder/commit/9e93e7c9236ccef71c87a3dc4023910f9ac03803です

于 2013-09-18T03:19:51.243 に答える
0

collectionbinderview: 'lib/view/Backbone.CollectionBinder', modelbinderview: 'lib/view/Backbone.ModelBinder',

それらを切り替えてみてください。CollectionBinder の前に ModelBinder を配置します。

于 2013-09-17T12:17:24.140 に答える