問題タブ [ember-cli-mirage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
5515 参照

ember.js - Ember Data から promise を返す際のエラー

私は最初の Ember アプリに取り組んでおり、次の静的 JSON オブジェクトを返すルートで希望どおりに表示するようになりましたmodel()

今、私は Ember Data + Mirage を使用するようにリファクタリングしようとしていますが、ひどい時間を過ごしています。

これが私のindex.jsルートです

Mirage を次のようにセットアップした場合config.js:

次に、次のエラーが表示されます。

Mirage を次のようにセットアップした場合config.js:

次に、次のエラーが表示されます。

編集:

したがって、これは述べられている問題の解決策ではありませんが、私はこれを乗り越えました。私は Pretender をあきらめ、次の優れたチュートリアルに従って実際の Rails サーバーの作成を再開しました: http://emberigniter.com/modern-bridge-ember-and-rails-5-with-json-api/

私はこの方法でやりたいことをすべて行うことができました。これを製品アプリにしたい場合は、はるかに近いです.

0 投票する
1 に答える
173 参照

ember.js - ember data 1.13.8 と ember cli mirage の混乱

これは私の Ember インスペクタ情報タブです:

私は ember-cli-mirage を使用していますが、ここで問題に直面しています。

モデルの属し関係を取得できません。私がそうするときcar.get('user')、私は満たされる結果の約束を得るが、値は常にnullです。

私のユーザー モデルは「ember-data」から DS をインポートします。

私の車のモデル

私の蜃気楼/設定

検索色で車のリストを取得しますが、ユーザーを取得しません。満たされると null を返す promise を返します。

私はember-data 1.13.8を使用しているので

このMirageをjsonで使用しようとしましたが、エラーdatum model is not definedエラーが発生するため、何らかの理由で新しいjson APIは問題ではないと思います。私のemberデータは古いjson形式を使用し、元の構成が機能します。

マイカールートはこんな感じ

私は試した

しかし、私はまだ持っていますconsole.log //undefined

返された json の user_id を確認できます。

解決策:user_id = user.id.私が関係を 保存していた問題を見つけましたuser=user.id

0 投票する
1 に答える
2639 参照

ember.js - ember-cli-mirage を使用したエラー応答のテスト

モック レスポンスの作成に関する ember-cli-mirage のドキュメントを読んでいますが、まったく同じリクエストのエラー レスポンスをテストする方法がわかりません。例えば:

応答を形成する唯一の方法はルートにあるようです

mirage はこれをどのように行うことを推奨していますか?

0 投票する
1 に答える
1673 参照

javascript - ember-cli-mirage を使用して Ember destroyRecord (または deleteRecord を保存) が失敗する

私がやろうとしているのは、ember-cli-mirage をこの todo アプリhttps://github.com/ember-cli/ember-cli-todosに統合することです。このアプリは Ember 2.0 以降を使用しています。セットアップ:

  1. todo アプリのクローンを作成し、アプリ ディレクトリに cd します。
  2. シェル > npm インストール
  3. shell> bower のインストール
  4. シェル>エンバーサーブ

アプリが宣伝どおりに機能していることを確認しました (ここでは関係のない小さなことを除いて)。Todo アイテムを作成、更新、および削除できます。todo アプリは、ember-data-fixture-adapter/FIXTURES を使用してアプリにデータをシードします。

ember-cli-mirage を統合するために行った手順は次のとおりです。

  1. app/models/todo.js の Todo.reopenClass ブロック (FIXTURES/seed データを作成するコード) をコメント アウトします。
  2. app/adapters ディレクトリを削除しました (このディレクトリには、1 つのファイル application.js のみが含まれます (「export { default } from 'ember-data-fixture-adapter';」という 1 行のみが含まれます))。このディレクトリ全体が FIXTURES セットアップにのみ使用されることは確かです。
  3. shell> ember install ember-cli-mirage
  4. こちらの手順に従って ember-cli-mirage パーツ (app/mirage/{config.js,factories/post.js,scenarios/default.js}) をセットアップしますhttp://www.ember-cli-mirage.com/docs/ v0.1.x/working-with-json-api/ .

app/mirage/{config.js,factories/post.js,scenarios/default.js} のコードを投稿しますが、これは基本的に ember-cli-mirage の指示のコピーにすぎません。ページ (「user」モデル名を「post」に置き換えたもの)。

エンバーサーバーを再起動しました。todo アイテムの削除を除いて、すべて正常に動作します。レコードの削除は、ポインタを todo アイテムの右側に移動すると表示される「x」ボタンを押すことで実行されます。レコード削除の save() 部分で失敗することがわかりました。(「x」ボタン インターフェイスを使用して) レコードを削除するためのコードは、app/components/todo-item/component.js にあり、次のようになります。

Todo アイテムを削除しようとすると、ブラウザー コンソールに "Successful request: DELETE /todos/n" ("n" は todo ID) が出力され、スタック トレースと共に不可解なエラー メッセージが出力されます。

「todo.save();」をコメントアウトしました。上の行。Todo アイテムを削除しても削除は失敗しますが、コンソールでは、"Successful request: DELETE /todos/n" メッセージの後にエラー メッセージが表示されなくなりました。

そこで、エラー メッセージをより明確にするために、上記の removeTodo コードを変更しました。私はこれを次のように変更しました:

あちこちでさまざまな変更を試みましたが、一貫して表示されるエラーメッセージは次のとおりです。

アサーションが失敗しました: アダプターは、既に ID を持つレコードに新しい ID を割り当てることができません。id: 3 を持っていて、未定義で更新しようとしました。これは、サーバーが、送信した ID とは異なる ID を持つ検索または更新に応答してデータを返したために発生した可能性があります。

「normalizeserializer...」のようなエラー メッセージが表示されましたが、メッセージ全体をコピーするのを忘れていました。

アダプターを追加しました:

しかし、これはそれを修正しませんでした。

ところで、todo アイテムの保存も呼び出す todo アイテムの作成は機能します。コードは app/components/todos-route/component.js にあります。

0 投票する
1 に答える
398 参照

javascript - Ember.js - 偽のモデルに ember-cli-mirage を使用するとモデル todo が見つからない

このチュートリアルで ember.js を学習しています ember-cli-mirage を使用して todo の偽モデルを作成すると、このようになります

私の蜃気楼の設定は次のようになります

私の混乱は主にモデルに関するものです。モデルの名前は「todos」ですが、単一のレコードを扱う場合、ember はどういうわけか「todo」に変更します。

todos ルートから、次のようにモデルを返します

ルート/todos.js

そして、私は上記のコードを理解していません-チュートリアルはそうあるべきだと言いましたthis.store.findAll(**'todo'**);しかし、それはemberコンソールにデータを返しません。「todos」に変更すると、出力が表示されます。(最後に出力)

routes/todos/index.js 内 -- modelFor('todos') を返します

テンプレート内 -- todos/index.hbs

index は todos.hbs の {{outlet}} todos.hbs からこのモデルを取得することを理解しています。

このアプリケーションを実行すると、次のエラーが発生します。

Ember インスペクターの出力

出力では、/ の get リクエストからデータを取得します --> これは todos ルートですが、todos/index ルートで todos にアクセスできません。

助けてくれてありがとう。すべてのコード スニペットはチュートリアルからのものです。

0 投票する
1 に答える
879 参照

ember.js - queryRecord が期待するレコードではなくクラス オブジェクトを返す

私はember-cli-mirageAPIをスタブ化するために使用しています.configにはこれがあります

私のインデックスルートでは、モデルフックをそのように設定しています

しかし、それは蜃気楼からユーザー モデルを返してくれません。それを変数にキャストしてコンソールにログを記録すると、代わりにクラス オブジェクトが取得されます。