我正在使用Ember 1.0.0 pre並使用REST適配器從Rails API中獲取對象。 如果通過REST API找到對象並將找到的模型對象設置爲視圖的模型,則呈現模板。爲了做到這一點,我使用了Route中的模型鉤子,一切似乎都正常。 當然,如果找不到模型對象,我想渲染一些特殊的404模板/視圖。 問題是,如果REST適配器返回錯誤,模型掛鉤會停止處理。如何處理未在Ember REST適配器中找到的404
我在ember-data路線圖中看到錯誤處理尚不受支持。
我不明白爲什麼Ember在發生錯誤時不會在路由中調用重定向鉤子。(?我怎樣才能處理這樣的錯誤)
這裏是路線:
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
}
})
是否有任何其他的解決辦法?我知道,我可以檢查模板,如果視圖的模型是空的,然後渲染一個局部模板,但問題是視圖根本沒有渲染(我假設完全是因爲同樣的問題)。
感謝您的時間和長時間的迴應。事實上,這是按預期工作的。但是,如果我使用'App.MyModel.find(params.id);它不能用於開箱即用;'我最終檢查返回的對象是否具有「_data」屬性。如果是的話,我返回模型,如果沒有,我會返回null。你會考慮這個檢查安全嗎? – peshkira 2013-02-08 16:33:24
我會這麼說,但如果您有任何與此有關的不尋常問題,請牢記這是一個可能的原因。 – Wildhoney 2013-02-08 16:57:59
還有一些問題,但我認爲這些問題是由於餘燼數據造成的。因爲我決定不使用它,直到它穩定下來,你的解決方案似乎做得很好。再次感謝,我接受你的回答。 – peshkira 2013-02-21 08:57:26