2016-11-18 5 views
0

私はEmberにとって新しく、この新しいEmberのコンセプトの周りに頭を浮かべています。Ember.jsでのデータ作成を目的としたコンポーネントですか?

現在、私はデータ作成のための最良の方法を見つけるのに苦労しています。

私がしたいのは、2つのAJAX呼び出しでマイクロサービスにアクセスして、同時にモデルインスタンスを作成するファイルアップロードを作成することです。

このアップロードフォームはいくつかの場所で使用する必要があるため、コンポーネントは正しい選択です。

これを行うコンポーネントを作成するにはどうすればよいですか?

  1. Ember Dataをバイパスしてコンポーネントを作成し、そこでAJAX呼び出しを実行する必要がありますか?
  2. 一部のモデルデータをコンポーネントに処理し、モデルのデータアダプタ経由でAJAX呼び出しを行う必要がありますか?
  3. 私はここで完全に間違っていますか?別の方法がありますか?

答えて

2

これを行うには、いくつかの方法があります。まず、コンポーネントは間違いなく必要なものです。

ember-dataをバイパスする必要はありません。これを行う理由はほとんどありません。おそらく、何をやりたいです。

  1. store.createRecord()でレコードを作成するには、
  2. そのレコードを変更し、
  3. .save()それは、
  4. とアダプタのすべてのajaxものを扱います。

あなたは基本的にこれを行うには、2つの方法があります:あなたは、すべてのデータを持って後にコンポーネントからアクションを呼び出し、そのアクションに上記のすべてのものを行うことができ

  • を。私はそれが最もDDAUのアプローチだと思う。このアプローチを使用すると、コンポーネント{{file-upload onUpload=(action 'upload')}}を呼び出すときに、外部との接続が明示的になります。
  • ストアをコンポーネントに挿入できます。正直なところ、私がやることです。店はただのサービスなので、簡単です。そして、あなたはあなたのレコードを作成することができます。ただし、店舗への接続はそれほど明白ではありません。
+0

OK。ストアをコンポーネントに注入することは、実用的な方法のようです。私は、コンポーネントにアップロード中にプロセスの進行状況をフィードバックする必要がある場合、アクションを呼び出すのは問題になると思いますか? – JPS

+0

@JPSも可能です。アクションには戻り値があり、ステータスをデータで指定することができます。 – Lux

関連する問題