2015-10-22 7 views
7

でエラー状態が内部àpp/podsに私の構造体である:Ember.js - ここポッド構造

|-application 
|-index 
|-error 
|-user 
||-index 
||-view 
||-edit 

エラーが発生した場合、燃えさしはerrorルートをロードしません。 代わりにindex_errorまたはuser_errorのようなサブルートをロードしようとしますが、これらは存在しません。

エラーが発生したときにEmberにルートerrorルートを強制的にロードさせるにはどうすればよいですか?

エンバーv2.1の エンバー-CLIのv1.13.8

答えて

1

あなたが提供した構造は、実際にあなたが説明している内容を正確に反映しているはずです。

例を見るにはthis twiddleを見てください。 [ユーザーの表示]をクリックするとuser.viewルートに切り替わりますが、[ユーザーの編集]をクリックすると、user.editルートで例外が発生し、代わりにerrorルートに着陸します。注意すべき

ことの一つは、あなたがrouter.jsにエラールートを自分で追加しないなければならないことです。遷移エラーをモデルとして受け取るので、手動でthis.route('error')を実行し、動的セグメントを与えないと、遷移は失敗します。あなたはエラーが任意の遷移中に発生したときに起こる正確に何をより細かく制御したい場合は


は、あなたのアプリケーションのルート上errorアクションを実装することができます。

actions: { 
    error(thrownError) { 
    this.transitionTo('my-error-route'); // Or whatever other handling you want 
    } 
} 

this twiddleでそのような配置の完全な例を見ることができます。これはちょうど副状態に移行するのではなく、完全な移行(URLが更新される)をもたらすという点でdefault error behaviorと微妙に異なります。

+0

あなたの答えは私のアプリケーションの問題を解決しませんでしたが、それはすべきことです。 +50 – medokin

2

私は次のようなポッド構造の内部エラーのルートを表示することができた:

-app 
--pods 
----something 
------template.hbs 
------route.js 
----error 
------template.hbs 

私は何かにエラーをスローした場合次のような/route.js:

export default Ember.Route.extend({ 

    model() { 
    throw new Error('AAA'); 
} 

}); 

とコンテンツとのerror/template.hbsあります

Arrrh, errror!!!! 

エラーメッセージが表示されます。

あなたはsomethingに対するエラー副経路を望んでいた場合、私はあなたが以下のものが必要だと思う:上記app/application/errorによると

-app 
--pods 
----something 
------template.hbs 
------route.js 
------error 
--------template.hbs 
----error 
------template.hbs 
関連する問題