简单的骨干应用程序通过错误

我不明白。 当使用JSFiddle时,这个简单的例子工作正常:

小提琴

SearchView = Backbone.View.extend({ initialize: function(){ alert('hello'); } }); var search_view = new SearchView; 

但是,当我在Node应用程序中实现相同的事情时,我在页面的加载时出现以下错误。

 "Uncaught TypeError: undefined is not a function" - localhost:3000/bower_components/backbone/backbone.js:1105 

我毫不怀疑我错过了一些非常简单的事情,但是这让我感到疯狂。

在这两种情况下,我链接到JQuery,下划线和Backbone ..但有人我的项目不起作用。 我在这里检查我的项目… https://warrickf@bitbucket.org/warrickf/searchview.git

感谢Warrick

问题是你在Backbone之后加载jQuery。 Backbone是依赖于jQuery和Underscore的,所以你需要在加载Backbone之前加载它们。

 script(src='/bower_components/underscore/underscore.js') script(src='/bower_components/jquery/dist/jquery.js') script(src='/bower_components/backbone/backbone.js') 

我认为你的backbone.js版本存在一些问题。 我只是去你的小提琴复制backbone.js库的位置,并添加到index.jade。

在index.jade中的脚本标签之前添加这一行

 script(type="text/javascript" src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js") 

如果你会看到你的小提琴它使用一些0.3.3版本的backbone.js。 如果我在你的小提琴中添加版本1.1.2它将无法正常工作。 所以你必须弄清楚你必须使用什么版本。