findQuery(..query..); を使用すると、失敗した (404) を拒否する ember-data を取得できないようです。検索 (..id..); 正常に動作します。
したがって、ルートでは:
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 として返されるのを確認できますが、promise エラーはトリガーされません。私は何が欠けていますか?