Ember.jsアプリケーションでロードボタンコンポーネントを作成しようとしています。ボタンは、特定のXHRが作成されたことを検出すると自動的に無効になり、XHRが完了したときに再び有効になります。基本的には、私が提出した特定のURLを追跡し、それに基づいて状態を変更する必要があります。これは、コンポーネントとどのように見えるか、私のハンドルは、現在のファイルです:JavaScript/Ember.jsで特定のAJAX呼び出しをURLで観察するにはどうすればよいですか?
{{loading-button trackMethod="POST" trackURL="/addItem" value="Add Item"}}
私は私のエンバーアプリケーションのコントローラでは、この使用してjQueryの.ajaxComplete()
方法を達成しようとしたが、私は、 `{{読み込みボタン}}」コンポーネントを取得することはできませんアプリケーションコントローラ内のプロパティを観察する。
init: function() {
let self = this;
// Observe all XHRs
$(document).ajaxComplete(function(event, xhr, settings) {
self.set('ajaxCompleteUrl', settings.url);
});
}
どのように私がこれを達成することができるかについての指摘をお待ちしています。ありがとう。
の代わりにこれをやって、あなたがロードを表示するコンポーネントに 'isLoading'(フラグ)を渡すことができ、そしてそのプロパティ弊社は、この時点までのことをアップしていた、その要求 –
を行っているコントローラ上で設定されますしかし今ではボタンコンポーネントを非常に多くの場所で使用しているため、各場所の状態を把握することは難しいです。状態を手動で設定する必要はありません。 'isLoading'を使用すると、コントローラを持つコンポーネントが非常に緊密に結び付けられます。 – Nag
そのボタンをコンポーネントとして作成し、ajaxを作成するサービスにリンクします。 – Keo