Require.js 和 Backbone.js/Underscore.js 结合的麻烦 [英] Trouble combining Require.js and Backbone.js/Underscore.js

查看:16
本文介绍了Require.js 和 Backbone.js/Underscore.js 结合的麻烦的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经阅读了之前的帖子,其中其他成员的错误消息与我相同,但他们接受的解决方案似乎没有帮助.

I've read previous threads where other members have had identical error messages as me, but their accepted solution doesn't seem to help.

基本上,当我尝试加载 index.html 时,我在 Chrome 控制台中得到了这个:

Basically I get this in Chrome console when I try to load index.html:

Uncaught Error: Module name "underscore" has not been loaded yet for context: _. Use require([])

几秒钟后显示:

Uncaught Error: Load timeout for modules: underscore,backbone

Chrome 网络工具不会显示任何异常,直到 day_view.js 加载正常(200 OK).

Chrome network tools doesn't show any anomalies everything up until day_view.js is loaded fine (200 OK).

文件结构

index.html

...
<script>
        var require = {
            deps: ["jquery/jquery-min", "underscore/underscore-min", "backbone/backbone-min"]
        };
</script>
<script data-main="scripts/main" src="scripts/require.js"></script>
...

ma​​in.js

require.config({
    baseUrl: 'scripts',

    paths:{
        jquery:'jquery/jquery-min',
        underscore:'underscore/underscore-min',
        backbone:'backbone/backbone-min'
    },

    shim: {
        underscore: {
            exports: '_'
        },
        backbone: {
            deps: ["underscore/underscore-min", "jquery/jquery-min"],
            exports: "Backbone"
        }
    },

    waitSeconds: 200
});

require(['day_view'], function (day_view) {
    function start() {
        day_view.render();
    }

    return {
        start:start
    };
});

day_view.js

define(['jquery', 'underscore', 'backbone'], function($, _, Backbone) {
    function render() {
        ...
    }
...

推荐答案

这终于奏效了.

require.config({
    paths:{
        jquery:'jquery/jquery-min',
        underscore:'underscore/underscore-min',
        backbone:'backbone/backbone-min'
    },
    shim: {
        underscore: {
            exports: '_'
        },
        backbone: {
            deps: ["underscore", "jquery"],
            exports: "Backbone"
        },
        waitSeconds: 15
    }
});

require(['day_view'], function (day_view) {
    function start() {
        day_view.show();
    }
    console.log(day_view); // Empty object here?
    return {
        start:start
    };
});

define(['jquery', 'underscore', 'backbone'], function($, _, Backbone) { ...

这篇关于Require.js 和 Backbone.js/Underscore.js 结合的麻烦的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆