2

我正在尝试在我的 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-railsgem 来管理我的 jquery。我从另一篇 SO 帖子中了解到如何指定要加载的jquery版本(通过指定jquery-rails.下一个主要版本,在这种情况下是 2。jquery-rails~>

    gem 'jquery-rails', '~>1.0.19'

接下来我bundle在应用程序目录下运行以安装所需版本的jquery-rails. 你可以做一个gem list来验证。重新启动 rails 并刷新浏览器后,我得到了我的文本框,因此现在看来 Ember.js 依赖项已满足。

4

1 回答 1

2

确保您使用的是正确版本的 jQuery(根据评论更新)。

Ember 最近停止捆绑其许多依赖项,因此您必须在 ember.js 之前手动包含它们。检查您的应用程序模板并确保 jQuery 包含在 Ember 之前(如果它是单独的文件),并且还包含在您的 application.js 清单文件中。

于 2012-09-08T08:27:10.240 回答