烬模型在间隔重装

问题描述 投票:14回答:3

我有一个用户模型,其具有纬度和经度的特性,其用于在地图上显示当前用户位置。

App.User = DS.Model.extend({
    firstName: DS.attr('string'),
    lastName: DS.attr('string'),
    email: DS.attr('string'),
    jobs: DS.hasMany("App.Job"),
    latitude:   DS.attr('number'),
    longitude: DS.attr('number'),
    measuredAt: DS.attr('date'),
});

什么是从服务器自动更新经度和纬度的属性每一个给定的时间间隔最好方法是什么?难道烬数据支持这种使用情况?我无法找到此功能的任何样品。我想我会需要重写find方法对用户类的setInterval看来,这是正确的做法?

谢谢

ember.js ember-data
3个回答
8
投票

对于那些谁是现在碰到这个问题来了 - 不使用setInterval,它被证明会导致严重的内存泄露。

使用Ember的自己,而不是Ember.run.later

也可以看看:

编辑:2019年2月3日 - 更新损坏的链接。


9
投票

编辑:请参阅德米特里Zagidulin的答案。

所以我想通了。现在我需要的是覆盖didLoad方法的模型,在未来我可能会需要更复杂的解决方案,但是这足够了。

didLoad: function(){
  var self = this;
  setInterval(function() {self.reload()}, 5*60*1000); //every 5 minutes
}

如果有人需要重新加载更多的车型,很好的解决方案将是实现这个作为的Mixin。


5
投票

该模型现在有一个.reload()方法,该方法你可以在setInterval回调使用。见https://stackoverflow.com/a/14183507/363073

附:关注#545

© www.soinside.com 2019 - 2024. All rights reserved.