この正確なユースケースに対する私の解決策は簡単です。ApplicationRoute
これらの例外を収集してカスタムに挿入し、ExceptionsController
メインexceptions
アプリケーション テンプレートのどこかにレンダリングするイベント ハンドラーを定義しました。
App.ApplicationRoute = Ember.Route.extend({
events: {
exceptionHandler: function (exception) {
this.controllerFor('exceptions').addObject(exception);
}
}
});
ExceptionsController
の単なる拡張ですArrayController
。
App.ExceptionsController = Ember.ArrayController.extend();
最後に、メインのアプリケーション テンプレートのどこかで使用します。
{{render 'exceptions'}}
テンプレはご想像にお任せします。
編集
次に、例外を発生させたい場合send
は、コントローラーまたはルートの任意の場所でアクションを起動するために使用します。
this.send('exceptionHandler', exception);
カスタムモデルは例外です。
このソリューションの利点は、アプリケーション ルートの下の他のルートまたは任意のコントローラーでハンドラーをオーバーライドできることです。