2

Rails プロジェクトで Ember.js を使用しようとしています。ToDoアプリの足場を作りました。「emberjs-rails」gem を Gemfile の一番上に追加しました。JQueryの直後に私のapplication.jsにemberを追加しました:

   //= 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-railsjqueryの管理にgemを使用しています。ロードするjquery のバージョンを指定する方法に関する別の SO 投稿から学びました (の対応するバージョンを指定することにより) jquery-rails。この問題を解決するには、バージョン 1.0.19 以降のマイナー リリースを使用jquery-railsます。この場合、次のメジャー リリースは 2 です。~>

    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 に答える