前几年对这个话题一直存在疑问,但Ember从那时起经历了很多变化,大部分答案都填写了,直到事情变得更加紧密。我正在使用一个使用ember-cli的应用程序。在api上,如果你从api请求一个不存在的资源,api会返回404.但是,ember数据似乎只是在收到404时抛出错误。
我看到一种看似有希望的方法,有人在2014年回答了类似的问题,并且有这个代码示例:
return this.store.find('matter', params.matter_id).then(
(function (_this) {
return function(model){
resolve(model);
}
})(this),
(function (_this) {
return function(invalid){
_this.transitionTo('auth.denied');
}
})(this));
ember promises可以采取决心并拒绝作为参数。在上面的代码中,他将自我实例化函数作为resolve和reject参数传递。拒绝正如我所希望的那样工作。然而,现在我遇到的问题是,当我处于决心时,即使这个模型'变量带回一个ember数据对象,我似乎无法正确解决这个问题。 Ember会抛出错误并指出错误,"在调用data
时遇到push
的对象,但是未定义"。
我希望Ember社区中有人能够对如何正确解决这个问题有所了解,或者可能是更好地解决这个问题的方法。
答案 0 :(得分:0)
this.store.find
会返回promises。
尝试做类似
的事情this.store.find(...).then(function(model) {
console.log(model);
resolve(model)
}, function(reason) {
alert('error');
});
模型json
,如果不是它可能是问题吗?