我正在尝试使用FIXTURES
在测试应用程序中模拟缓慢的后端。我正在执行以下操作:
App.SlowIndexRoute = Ember.Route.extend({
model: function() {
return new Ember.RSVP.Promise(function(resolve) {
Ember.run.later(function() {
resolve(App.Node.find());
}, 2000);
});
}
});
我预计这会表现得与慢速 REST 后端类似,即:
- 请求已发送
- 路由已激活,模板已渲染
- 从后端收到回复
- 现在模板中的数据已更新
相反,据我所知,这大致是正在发生的事情:
- 请求已发送
- 未执行模板渲染,路线尚未激活。
- 一旦回复“到达”(
resolve(App.Node.find());
),路由就会被激活 - 模板已渲染,并且由于数据已经可用,因此也将显示
如何更准确地模拟缓慢的 REST 后端?如何确保路由器在回复到达之前激活 View /模板?
最佳答案
DS.FixtureAdapter 有一个latency
属性,默认为 50 毫秒。您可以在创建商店时通过手动实例化适配器来更改此设置。
App.Store = DS.Store.extend({
adapter: DS.FixtureAdapter.create({ latency: 1000 });
});
从 Ember 1.0.0-rc.6 开始,路由的预期行为是在转换之前等待模型的 promise 解决。如果您不希望路由等待,请不要从 model
Hook 返回 promise (带有 then
方法的内容)。返回一个常规对象、已加载的对象或代理。然后稍后在 setupController
Hook 中加载模型。
关于ember.js - 如何使用 FIXTURES 模拟缓慢的 REST 后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17910814/