2016-09-26 5 views
0

は、モデルを保存するときにテンプレートの読み込みを表示する方法です。Emberローダーのモデル保存

異なるルートへの移行時にアプリケーションレベルの読み込みテンプレートを使用することはできますが、読み込みテンプレートが表示されていないときにモデルを保存した場合は使用できます。

this.transitionTo( 'routeName')は、サーバーからpromiseを取得するまでload.hbsに移動しますが、model.save()を実行すると表示されません。

+0

ロードサブステートがします'beforeModel、' model'、または 'afterModel'が約束を返すかどうかだけを示します。モデル保存中に何かを表示したい場合は、カスタムローダーの表示を処理する必要があります –

答えて

1

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); 
     }); 
    }, 
    }, 
}) 
関連する問題