使用 findQuery(..query..); 时,我似乎无法让 ember-data 拒绝失败(404);查找(..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,但从未触发过承诺错误。我错过了什么?