gpt4 book ai didi

backbone.js - Backbone 未定义

转载 作者:行者123 更新时间:2023-12-04 02:50:43 25 4
gpt4 key购买 nike

我有一个 Backbone 应用程序,它从我使用 Backbone 的代码中的不同位置不确定地获取错误 Backbone is not defined 。有时它会先加载然后加载网站,有时则不会。我将以下内容用作我的 main.js:

require.config({
paths: {
jqueryui: 'libs/jquery/jquery-ui',
underscore: 'libs/underscore/underscore-min',
backbone: 'libs/backbone/backbone-min',
text: 'libs/require/text',
order: 'libs/require/order',
searchcollector: 'libs/jquery/searchcollector.plugin',
guiders: 'libs/jquery/guiders'
},
shim: {
'underscore': {
exports: '_'
},
'backbone': {
deps: ['underscore'],
exports: 'Backbone'
}
}
});

require([
'views/app',
'helpers'
], function(app) {
var app = window.app = new app();
});

我在用

<script data-main="/assets/js/main" src="/assets/js/libs/require/require-jquery.js"></script>

在我的 HTML 中,jQuery 加载了 require。我从这个 (http://stackoverflow.com/questions/8131265/loading-backbone-and-underscore-using-requirejs) SO 线程中得到了这个建议,但似乎没有任何效果。 Shim 不应该先加载 Backbone 然后让它在全局范围内可用吗?任何帮助表示赞赏。

最佳答案

不确定这是否是正确答案,但我注意到您没有将 jquery 列为 Backbone 依赖项。虽然 Backbone 将 Underscore 列为唯一的硬依赖,但 Backbone.View 将需要 jquery 或 zepto 才能工作。

但为什么有时它似乎有效呢?

可能是因为 jQuery 是一个 AMD 模块,当您加载时,它有时会先加载,有时则不会。当它在 Backbone 之前加载时,它可用并且 Backbone 很高兴。否则,您可能会得到不好的结果。

尝试这样的事情:

在你的路径中添加:

jquery: 'libs/require/require-jquery'

然后在你的 shim 中添加:

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

让我知道您得到了什么结果。我从未使用过 requirejs2.0 的垫片功能,所以我很好奇我是否正确理解了更深层次的东西。

关于backbone.js - Backbone 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11935056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com