【发布时间】:2011-08-13 10:28:57
【问题描述】:
我刚刚开始研究 javascript 以使项目更具响应性,我正在研究一个主干.js 示例。
我在一个新的 Rails 3 项目中复制了 http://www.jamesyu.org/2011/01/27/cloudedit-a-backbone-js-tutorial-by-example/。
我运行该项目并转到主页 .... 那里有一个指向 /# 的链接,没有别的。查看 js 控制台,我在两个脚本上遇到错误:application.js 和backbone.js
这个(backbone.js)
backbone-min-0-3-3.js:8Uncaught TypeError: Cannot call method 'extend' of undefined
还有这个(application.js):
var App = {
Views: {},
Controllers: {},
Collections: {},
init: function() {
new App.Controllers.Fffforms();
**error message ---> application.js:9Uncaught TypeError: undefined is not a function**
Backbone.history.start();
}
};
作为 js 新手,这并不完全有意义,而且我所查找的任何内容在短期内都没有太大帮助。
谁能告诉我这些错误究竟意味着什么以及我该如何跟进?一切检查比较资源 https://github.com/jamesyu/CloudEdit,但我从一个新的 rails 3 项目(不是该 repo 的克隆)复制并不能完全正常工作。
感谢任何建议,记住我刚刚开始学习一些 javascript。
编辑:
根据建议,我实际添加了 Jammit gem 并将其配置为提供所有 js 脚本,而默认的 Rails all 不是。现在所有脚本都将进入浏览器(包括控制器)。不幸的是,这并不能解决最初的问题,只会在加载时产生更多错误,从 chrome js 控制台中的 App init 流出:
Uncaught TypeError: undefined is not a function
App.initapplication.js:9
(anonymous function):3000/#new:32
d.extend._Deferred.f.resolveWithjquery.min.js:16
d.d.extend.readyjquery.min.js:16
d.c.addEventListener.yjquery.min.js:16
鉴于我现在只是在复制,在我的 atm 之外肯定有一些被忽略的小细节阻止了应用程序正确启动。
【问题讨论】:
-
在 Firefox 控制台中我得到不同的错误错误:f 未定义和错误:App.Controllers.Fffforms 不是构造函数。
标签: javascript ruby-on-rails ajax ruby-on-rails-3 backbone.js