如何使用FIXTURES模拟缓慢的REST后端?

时间:2013-07-28 17:24:19

标签: ember.js ember-data

我正在尝试使用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后端类似,即:

  1. 请求已发送
  2. 激活路线,渲染模板
  3. 回复来自后端
  4. 现在数据已在模板中更新
  5. 相反,据我所知,这大致是正在发生的事情:

    1. 请求已发送
    2. 未执行模板渲染,路线尚未激活。
    3. 一旦回复“到达”(resolve(App.Node.find());),路线就会被激活
    4. 呈现模板,由于数据已经可用,因此也会显示
    5. 如何更准确地模拟慢速REST后端?如何在回复到来之前确保路由器正在激活视图/模板

1 个答案:

答案 0 :(得分:4)

DS.FixtureAdapter的latency属性默认为50毫秒。您可以通过在创建商店时手动实例化适配器来更改此项。

App.Store = DS.Store.extend({
    adapter: DS.FixtureAdapter.create({ latency: 1000 });
});

从Ember 1.0.0-rc.6开始,路径在转换之前等待模型的承诺解析是预期的行为。如果您不希望路由等待,请不要从then挂钩返回承诺(使用model方法的内容)。返回一个常规对象,一个已经加载的对象或一个代理。然后在setupController挂钩中加载模型,例如。