loading and error substatesは経路を読み込むときにのみ使用されます。コントローラのアクション中にアクションを呼び出す方法はありません(アクションが新しいルートをロードしない限り、その場合でも状態はアクションではなく新しいルートのロードに結び付けられます)。プロパティと部分を使用してアクションを実行する際に
あなたはまだロードテンプレートを表示することができます。
テンプレート:
<!-- templates/components/user-account.hbs -->
{{#if busy}}
{{partial 'loading-template-name'}}
{{else}}
{{!-- template content --}}
<button {{action "save"}}>Save</button>
{{/if}}
コンポーネント:
// components/user-account.js
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
save: function() {
if (this.get('busy')) {
return;
}
this.get('user').save()
.then(() => {
// handle success
})
.catch((e) => {
// handle error
})
.finally(() => {
this.set('busy', false);
});
},
},
})
ロードサブステートがします'beforeModel、' model'、または 'afterModel'が約束を返すかどうかだけを示します。モデル保存中に何かを表示したい場合は、カスタムローダーの表示を処理する必要があります –