我正在使用Ember 固定装置对我的应用程序进行原型设计,并且我想在第一次请求模型以模拟 ajax 请求时添加延迟。这可能吗?
问问题
1824 次
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 回答