backbone.js和backbone.modelbinding.js与require.js
我试图按照我在这里看到的示例代码和其他几个地方使用require.js加载主干/下划线。我基本上是从中复制/粘贴了示例代码,但它不起作用 在app.js中,警报(主干)显示主干为空。我真的不知道为什么它不在那里——有人能看出我做错了什么吗?谢谢你的帮助 index.html 脚本/app/app.js 以下是我的版本,以备不时之需: jquery 1.7.1 require.js版本1.0.4 下划线1.3.0 主干网版本0.5.3backbone.js和backbone.modelbinding.js与require.js,backbone.js,underscore.js,requirejs,Backbone.js,Underscore.js,Requirejs,我试图按照我在这里看到的示例代码和其他几个地方使用require.js加载主干/下划线。我基本上是从中复制/粘贴了示例代码,但它不起作用 在app.js中,警报(主干)显示主干为空。我真的不知道为什么它不在那里——有人能看出我做错了什么吗?谢谢你的帮助 index.html 脚本/app/app.js 以下是我的版本,以备不时之需: jquery 1.7.1 require.js版本1.0.4 下划线1.3.0 主干网版本0.5.3 modelbinding 0.4.3我们可以查看您的文件结构和
modelbinding 0.4.3我们可以查看您的文件结构和文件名吗? 您的主干文件是@
libs/backbone.js
?或者它是libs/backbone-0.5.3.js
还是什么?
下划线和其他库也是一样,名称必须正确。您确定您使用的是主干0.5.3-optamd3吗?(对不起,在注释中换行似乎不起作用)谢谢,我基本上去掉了所有代码,只是为了让它正常工作,所以我没有应用程序代码或任何东西。我的目录结构如下所示:/index.html/scripts/main.js/scripts/require.js/scripts/app/app.js/scripts/libs/backbone.js/scripts/libs/underline.js/scripts/jquery-1.7.1.js/scripts/libs/domReady.js我并不认为这是正确的答案,但是我能够使用本页上的技术使它工作:通过添加一个“loader”类和我所称的代理文件。当我这么做的时候,一切都正常了,但对我来说,这似乎是一个黑客行为,我不明白为什么主干是空的,除非使用了这个加载器/代理技术。好的,代理文件实际上有助于加载非AMD javascript文件,所以你确定你试图包含的主干和下划线是AMD版本吗?您使用的下划线版本是什么?主干版本是这个吗?:主干-0.5.3-optamd3?啊哈,我刚刚发现了我的问题。从Underline.js页面:“升级警告:1.3.0版删除了AMD(RequireJS)支持”他们为什么会这样做?我在这里找到了更多关于这个主题的阅读资料-似乎在这种情况下使用的术语而不是“代理”是“垫片”-我不熟悉javascript使用的术语。看起来,如果要使用下划线的最新版本,则必须这样做。
<script type="text/javascript" data-main="scripts/main" src="scripts/require.js"></script>
require.config({
paths: {
'jquery': 'libs/jquery-1.7.1',
'underscore': 'libs/underscore',
'backbone': 'libs/backbone'
}
});
require([
'libs/domReady',
'app/app'
], function(domReady, app){
domReady(function () {
app.initialize();
});
});
define([
'jquery',
'underscore',
'backbone'
], function($, _, Backbone){
return {
initialize: function(){
// examples say you can use $, _ or Backbone here
// but Backbon is null here... WTF???
alert(Backbone);
}
};
});