【发布时间】:2015-03-29 23:33:33
【问题描述】:
我从EmberJS Guide to Routing 了解到,您应该在Route 的model 挂钩中指定要加载的路由模型。模型钩子可能会返回一个 Promise,如果返回,路由将暂停,直到 Promise 解决。
这就是我的问题:这种方法在正常用例下非常有效(用户触发从任何其他路由到相关路由的转换。)如果用户当前在该路由上,就会出现问题有问题。
如果用户触发页面刷新(使用浏览器的刷新按钮,或ctrl+r 或任何其他可能的触发器,model 挂钩中的promise 会导致用户坐在空白页面上,直到该承诺会返回。在大型数据集的情况下,这可能需要几秒钟,这不会带来出色的用户体验。
那么,我该如何解决这个问题?
我开发的唯一解决方案是在路由的activate 挂钩中触发数据加载,并在该承诺返回时手动设置控制器的模型。我不喜欢这样做,因为我绕过了 Ember 的整个模型框架。
我希望application 模板至少在model 挂钩挂起页面之前呈现。任何有关如何解决此问题的指导将不胜感激。
如果上下文是必要的:正如标签所暗示的,我使用的是 Ember-Data。我使用的 RESTAdapter 几乎完全是开箱即用的,未经修改。
【问题讨论】:
标签: ember.js