我有一个/products
的模型挂钩,如下所示:
App.ProductsRoute = Ember.Route.extend({
model: function(controller) {
return this.find.store('product');
}
});
这可以很好地工作,并以RESTAdapter支持的JSON约定获取产品列表,并且我可以使用{{#each}}帮助程序以
products
模板显示列表。但是,当我遇到一些http错误(例如500 Internal Server Error)时,应用程序会中断,并在JSON.parse中给出错误。我无法弄清楚如何在这里利用onSuccess和onFail回调正确地解决 promise (并有效地处理错误)。非常感谢您对此主题的任何帮助。
我尝试了以下操作,但无法正常工作。即使服务器关闭,流也永远不会到达
onFail
方法。App.ProductsRoute = Ember.Route.extend({
model: function(controller) {
var onSuccess = function(products) {
return products;
};
var onFail = function(reason) {
alert('Error occured !');
return [];
};
return this.find.store('product').then(onSuccess, onFail);
}
});
最佳答案
您可以添加一个简单的.then,其中第一个回调实质上是onSuccess,第二个回调是onFail
App.ProductsRoute = Ember.Route.extend({
model: function(controller) {
return this.store.find('product').then(function(response) {
alert('working!'); //(you can return the models here if all is good)
}, function() {
alert('broken!');
});
}
});