【发布时间】:2014-12-10 17:50:25
【问题描述】:
我正在加载路线。它的模型钩子加载一些模型。有些是从 ember 商店获取的,有些是通过 AJAX 请求的承诺:
model: function () {
return Em.RSVP.hash({
//the server data might not be loaded if user is offline (application runs using appcache, but it's nice to have)
someServerData: App.DataService.get(),
users: this.store.find('user')
});
}
App.DataService.get() 定义为:
get: function () {
return new Ember.RSVP.Promise(function(resolve, reject) {
//ajax request here
});
}
显然,如果请求被拒绝,流程就会中断,我根本无法显示页面。
有没有办法克服这个问题?
【问题讨论】:
-
你总是可以在 setupController 钩子中加载它。提出请求,在解决时设置一些控制器变量,在拒绝时,逻辑地处理拒绝。在 Ember 中,虽然在模型钩子中获取数据(以及应用程序自动阻止您的承诺)是惯用的,但您可以(而且我经常这样做)发出在其他地方返回承诺的请求
标签: ember.js