在使用findQuery(.. query ..)时,我似乎无法使用ember-data来拒绝失败(404' s);找到(.. 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,但永远不会触发promises错误。我错过了什么?
答案 0 :(得分:0)
我不知道它是否只是一个拼写错误,但是events
中的PostRoute
哈希应该调用events
你应该将其定义为单数event
这可能是为什么你的error
钩子里面找不到这个哈希并且没有被调用的原因:
App.PostRoute = Ember.Route.extend({
...
events: {
error: function (reason, transition) {
console.log('Error!');
}
}
});
希望它有所帮助。