我正在尝试在我的 Rails 项目中使用 Ember.js。我创建了一个 ToDo 应用程序的脚手架。在顶部附近的我的 Gemfile 中添加了“emberjs-rails”gem。在 JQuery 之后将 ember 添加到我的 application.js 中:
//= require jquery
//= require jquery_ujs
//= require ember
//= require_tree .
然后我将以下代码添加到视图中,希望在访问它时看到文本字段:
<script type="text/x-handlebars">
{{view Em.TextField id="new-todo" placeholder="the text"}}
</script>
当我访问此视图时,我在控制台中收到以下错误:
Error: assertion failed: Ember requires jQuery 1.6 or 1.7
[Break On This Error]
if (!test) throw new Error("assertion failed: "+desc);
我首先假设这个错误是因为 rails 在我的应用程序中集成了旧版本的 JQuery。但是当我检查调试器中的脚本部分时,我可以看到 JQuery 1.8 已加载:
jQuery JavaScript Library v1.8.1
查看页面源代码,我可以看到 Ember 和 JQuery 都被添加了。小车把脚本也存在。但是,由于上述错误,它似乎没有得到解释。
我在这里缺少什么,如何确保在我的 rails 应用程序中满足 Ember 对 JQuery 的依赖?
编辑(解决方案):正如 stef 在下面指出的,我需要退回到 JQuery 1.7 版。当前版本的 ember 不支持 JQuery 1.8。我正在使用jquery-rails
gem 来管理我的 jquery。我从另一篇 SO 帖子中了解到如何指定要加载的jquery版本(通过指定jquery-rails
.下一个主要版本,在这种情况下是 2。jquery-rails
~>
gem 'jquery-rails', '~>1.0.19'
接下来我bundle
在应用程序目录下运行以安装所需版本的jquery-rails
. 你可以做一个gem list
来验证。重新启动 rails 并刷新浏览器后,我得到了我的文本框,因此现在看来 Ember.js 依赖项已满足。