6

我正在使用Ember 固定装置对我的应用程序进行原型设计,并且我想在第一次请求模型以模拟 ajax 请求时添加延迟。这可能吗?

4

2 回答 2

6

好问题。FixtureAdapter具有内置的确切功能,您需要配置的属性称为latency. 尝试这个:

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

这将为 增加 5000 毫秒(5 秒)的延迟,FixtureAdapter在返回数据之前等待 5 秒。

虽然@Daniel 的回答也是一种有效的方法,但是使用这个内置功能会让你的模型钩子保持不变,当你在某个时候切换到不同的适配器时,这将不需要任何努力,并且不需要删除模拟承诺导致更清晰的代码。

希望能帮助到你。

于 2013-08-07T06:30:17.877 回答
4

在您的模型钩子中返回一个承诺,该承诺会在短暂的延迟后解决。

 model: function(params, transition){

    return new Ember.RSVP.Promise(function(resolve){
        setTimeout(function(){ 
            var model =  App.Model.find(params.id);
            resolve(model);
        }, 3000); // 3 second delay, wooh, your server is slow!!!
    });
 }
于 2013-08-07T04:56:41.400 回答