-1

我已经用最新的 v0.11.3 替换了卓别林 v0.7.0。完成后,我现在在 Chrome 中收到 Javascript 错误:

cannot assign to read only property 'dispatcher' of [object Object]

Firefox 报告了类似的内容:

[08:46:39.783] TypeError: "dispatcher" is read-only @ http://cdnjs.cloudflare.com/ajax/libs/chaplin/0.11.3/chaplin.min.js?bust=1386629198362:1

可能导致此问题的变化是什么?

我的 Grails 应用程序中的启动代码是:

<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js"></script>
<script>
    requirejs.config({
        baseUrl: './js/',
        paths: {
            jquery: '//cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min',
            'jquery.ui': '//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min',
            underscore: '//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min',
            backbone: '//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min',
            handlebars: '//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.1.2/handlebars.min',
            text: '//cdnjs.cloudflare.com/ajax/libs/require-text/2.0.10/text',
//                chaplin: 'vendor/chaplin-0.7.0',
            chaplin: '//cdnjs.cloudflare.com/ajax/libs/chaplin/0.11.3/chaplin.min',
            'jquery.bootstrap': '//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.2/js/bootstrap.min',
            'highcharts': '//cdnjs.cloudflare.com/ajax/libs/highcharts/3.0.2/highcharts',
            'moment': '//cdnjs.cloudflare.com/ajax/libs/moment.js/2.4.0/moment.min'
        },
        // Underscore and Backbone are not AMD-capable per default,
        // so we need to use the AMD wrapping of RequireJS
        shim: {
            jquery: {
                exports: '$'
            },
            underscore: {
                exports: '_'
            },
            backbone: {
                deps: ['underscore', 'jquery'],
                exports: 'Backbone'
            },
            handlebars: {
                exports: 'Handlebars'
            },
            'jquery.bootstrap': {
                deps: ['jquery']
            },
            'highcharts': {
                deps: ['jquery']
            }
        }
<g:if env="development">
        // For easier development, disable browser caching
        // Of course, this should be removed in a production environment
        , urlArgs: 'bust=' +  (new Date()).getTime()
</g:if>
    });

    // Bootstrap the application
    require(['application'], function(Application) {
        var app = new Application();
        app.initialize();
    });


</script>

此外 Firefox 似乎报告:

[08:46:38.395] Error: Mismatched anonymous define() module: function (Chaplin, routes) {
4

1 回答 1

0

看起来样板项目也有很多变化。

过去,您必须在初始化 Application 对象时调用 initDispatcher(),但现在看起来像卓别林框架在内部调用它。

于 2013-12-10T00:27:26.700 回答