Я использую Ember 1.0.0 pre и использую адаптер REST для извлечения объекта из Rails API. Я визуализирую шаблон, если объект найден через REST API и задает найденный объект модели в качестве модели представления. Для этого я использую крючок модели в Маршруте, и все, кажется, работает нормально. Естественно, я хочу отобразить специальный шаблон/вид 404, если объект модели не найден. Проблема заключается в том, что крючок модели останавливает обработку, если адаптер REST возвращает ошибку.Как обращаться с 404 Не найдено в Ember REST Adapter
Я видел в дорожной карте ember-data, что обработка ошибок еще не поддерживается.
Я не понимаю, почему Эмбер не вызывает крючок переадресации в Маршруте, если возникает ошибка. (? И как я могу обрабатывать такие ошибки)
Вот Маршрут:
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
Я бы так сказал, но если у вас есть какие-то необычные проблемы, связанные с этим, помните об этом в качестве возможной причины. – Wildhoney
Были некоторые дополнительные проблемы, но я считаю, что они были вызваны из-за данных ember-данных. Поскольку я решил не использовать его, пока он не станет стабильным, ваше решение, похоже, делает работу неплохо. Так что еще раз спасибо, я принимаю ваш ответ. – peshkira