私はemberコンポーネントからajax呼び出しを行う正しい方法が何であるか知っています。たとえばEmberJsコンポーネントからajax呼び出しを行う正しい方法ですか?
私は従業員のIDで従業員を検索する再利用可能なコンポーネントを作成したいのですが、その応答がサーバーから返ってくると、モデルをajaxレスポンスのデータで更新したいと考えています。
これが正しい方法であるかどうかわかりませんが、私はemberjsで本当に新しいです。 BEと通信するために、この
actions: {
doSomething() {
Ember.$.post('http://your-api-endpoint', data).then(function(response){ /* your callback code */});
}
}
そして、他の方法は、(あなたが言ったように)、その後のルートであなたが得ることができるエンバーストアを使用することであるようにそれが見えたので、私はアクションで直接エンバークラスを使用していた
export default Ember.Component.extend({
ajax: Ember.inject.service(),
actions: {
doSearch() {
showLoadingData();
var self = this;
this.get('ajax').post('http://server.ip.com/api/v1/getEmployee', { "id": this }).then(function(data) {
self.set('model.name', data.name);
self.set('model.position', data.position);
hideLoadingData();
});
}
}});
しかし、なぜ私はルートの従業員を作成する必要がありますか?私が望むのは、従業員情報の検索ボックスを持ったフォームを表示し、次に、より多くのフィールドを持つフォームを入力し続け、最後にその情報をサーバーに送信することです。これらのすべてはルートnew/it-requestを使用して – DeividKamui
OK、申し訳ありませんが、私は誤解しました。この場合ComponentはOKですが、サービスにajaxロジックを抽出するかember-dataに切り替える必要があります。 – edziubudzik
さらに、このコンポーネントはおそらくモデル自体を更新するべきではなく、新しい従業員データを含むアクションを送信して、親コンポーネント/コントローラがそれを処理し、それに応じてモデルを更新できるようにする必要があります。 – edziubudzik