私は Ember 1.0.0 pre を使用しており、REST アダプターを使用して Rails API からオブジェクトを取得しています。REST API 経由でオブジェクトが見つかった場合はテンプレートをレンダリングし、見つかったモデル オブジェクトをビューのモデルとして設定します。そのために、Route でモデル フックを使用すると、すべて正常に動作するようです。当然、モデル オブジェクトが見つからない場合は、特別な 404 テンプレート/ビューをレンダリングしたいと考えています。問題は、REST アダプターがエラーを返すと、モデル フックが処理を停止することです。
エラー処理がまだサポートされていないことを ember-data ロードマップで確認しました。
私が理解できないのは、エラーが発生した場合に Ember が Route でリダイレクト フックを呼び出さない理由です。(そして、どうすればそのようなエラーを処理できますか?)
ルートは次のとおりです。
App.MyRoute = Ember.Route.extend({
renderTemplate: function() {
this.render('mymodel')
},
model: function(params) {
return App.MyModel.find(params.id);
},
redirect: function() {
// I want to redirect to another route
// if the model is not found via the find method.
// However, this hook is not called if the previous one
// does not return an object
}
})
他の解決策はありますか?ビューのモデルがnullの場合はテンプレートをチェックインしてから部分テンプレートをレンダリングできますが、問題はビューがまったくレンダリングされないことです(同じ問題が原因だと思います)。