我正在使用 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
}
})
还有其他解决方案吗?我知道,如果视图的模型为空,我可以检查模板,然后渲染部分模板,但问题是视图根本没有渲染(我假设正是因为同样的问题)。