ember.js - 如何使用 FIXTURES 模拟缓慢的 REST 后端?

标签 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. 现在模板中的数据已更新

相反,据我所知,这大致是正在发生的事情:

  1. 请求已发送
  2. 未执行模板渲染,路线尚未激活。
  3. 一旦回复“到达”(resolve(App.Node.find());),路由就会被激活
  4. 模板已渲染,并且由于数据已经可用,因此也将显示

如何更准确地模拟缓慢的 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/

相关文章:

javascript - 在使用 Ember 和 ember-data 设置模型属性之前如何编辑表单数据?

javascript - Ember Data 1.0 - 如何在数据加载时触发模型上的观察者?

javascript - ENOENT : no such file or directory, Bower_components\bootstrap\js\transition.js'

javascript - 在 Ember.js 中手动设置单向绑定(bind)的正确语法是什么?

javascript - Mirage 的简单 Ember 数据问题(错误 : Encountered a resource object with an undefined type )

javascript - 如果将关系指定为链接,则防止 ember-data 从服务器重新加载关系

javascript - 加载路线时 ember-data 错误 : TypeError {}

Ember.js:直接加载相关模型

ember.js - 使用 ember.js 进行 A/B 测试

ruby-on-rails - Ember 模型只加载最后一条记录