2013-08-07 3 views
2

Я не могу получить данные ember-data, чтобы отклонить неудачные (404-е) при использовании findQuery (.. query ..); найти (.. ID ..); работает отлично.Обработка отклонения обещания в ember-данных с помощью findQuery()

Так в маршруте:

App.PostRoute = Ember.Route.extend({ 

    serialize: function(model, params) { 
    return { post_id: model.get('slug') }; 
    }, 

    model: function(params){ 
    var query = {}; 
    query.slugs = params.post_id; 
    return App.Post.findQuery(query).then( 
     function (data) { 
     return data.get('firstObject'); 
     }, 
     function (error) { 
     console.log('error'); 
     throw 'boom!'; 
     } 
    ) 
    }, 

    setupController: function(controller, model){ 
    this.controllerFor('post').set('content', model); 
    }, 

    events: { 
    error: function (reason, transition) { 
    console.log('Error!'); 
    } 
    } 

}); 

Я также попытался это:

return App.Post.findQuery(query).then(function (data) { 
    return data.get('firstObject'); 
}).then(null, function (error) { 
    console.log('error'); 
    throw 'boom!'; 
}); 

Нет радости. Я вижу запрос к URL-адресу, возвращающемуся как 404, но ошибка обещаний никогда не срабатывает. Что мне не хватает?

+0

Это еще проблема? Код кажется правильным, но может быть и другое, что показалось бы, если бы у вас был JSBin/скрипка. –

ответ

0

Я не знаю, если это всего лишь опечатка, но events хэша в вашем PostRoute должен называться events вы шов определили его как единственным число event это может быть проблемой, почему ваш error крюка внутри, что хэш не получает найден и это не вызвано:

App.PostRoute = Ember.Route.extend({ 
    ... 
    events: { 
    error: function (reason, transition) { 
     console.log('Error!'); 
    } 
    } 
}); 

Надеюсь, это поможет.

+0

Привет! Да, к сожалению, это была просто опечатка. Я скорректировал приведенный выше пример. Я отследил это до проблемы с реализацией findQuery, здесь есть открытый PR, который фиксирует проблему: https://github.com/emberjs/data/pull/1096#issuecomment-22246022 – i0n

+0

@ i0n, хорошо, хорошо Знаете, я видел, что вы на самом деле говорили об этом с Полом Чавардом в письмах с уведомлением github, извините, что я ничего не мог поделать. – intuitivepixel

+0

@ i0n @ intuitivepixel, вам удавалось понять это? Я только [поднял эту проблему] (https://github.com/emberjs/ember.js/issues/4461) – bguiz