Ember.js 如何使用fixture模拟慢速REST后端?

Ember.js 如何使用fixture模拟慢速REST后端?,ember.js,ember-data,Ember.js,Ember Data,我正在尝试使用fixture在测试应用程序中模拟一个缓慢的后端。我正在做以下工作: App.SlowIndexRoute = Ember.Route.extend({ model: function() { return new Ember.RSVP.Promise(function(resolve) { Ember.run.later(function() { resolve(App.Node.find());

我正在尝试使用fixture在测试应用程序中模拟一个缓慢的后端。我正在做以下工作:

App.SlowIndexRoute = Ember.Route.extend({
    model: function() {
        return new Ember.RSVP.Promise(function(resolve) {
            Ember.run.later(function() {
                resolve(App.Node.find());
            }, 2000);
        });
    }
});
我希望它的行为类似于慢速REST后端,即:

请求已发送 管线被激活,模板被渲染 来自后端的回复 现在,数据在模板中更新 相反,据我所知,这大概就是正在发生的事情:

请求已发送 未执行模板的渲染,路由尚未激活。 一旦回复到达resolveApp.Node.find;路线已激活 将呈现模板,并且由于数据已可用,因此也将显示该模板 如何更准确地模拟慢速REST后端?如何确保路由器在答复到达之前激活视图/模板?

DS.FixtureAdapter的延迟属性默认为50毫秒。您可以通过在创建存储时手动实例化适配器来更改此设置

App.Store = DS.Store.extend({
    adapter: DS.FixtureAdapter.create({ latency: 1000 });
});
从Ember 1.0.0-rc.6开始,路由的预期行为是等待模型的承诺在转换之前得到解决。如果不希望路由等待,请不要从模型挂钩返回带有then方法的承诺。返回常规对象、已加载的对象或代理。然后稍后在setupController挂钩中加载模型。

DS.FixtureAdapter的延迟属性默认为50毫秒。您可以通过在创建存储时手动实例化适配器来更改此设置

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

从Ember 1.0.0-rc.6开始,路由的预期行为是等待模型的承诺在转换之前得到解决。如果不希望路由等待,请不要从模型挂钩返回带有then方法的承诺。返回常规对象、已加载的对象或代理。然后稍后将模型加载到您的setupController挂钩中。

谢谢!如果我理解正确,更改FixtureAdapter的延迟将影响所有路由。我有兴趣在一条路线一条路线的基础上对此进行调整,因此在我的情况下它将不起作用。您建议的第二种方法看起来更有希望。你能提供一些示例代码吗?谢谢!如果我理解正确,更改FixtureAdapter的延迟将影响所有路由。我有兴趣在一条路线一条路线的基础上对此进行调整,因此在我的情况下它将不起作用。您建议的第二种方法看起来更有希望。你能提供一些示例代码吗?