How to update Ember's model periodically (such as in setInterval)?

I think this is a good use case for Ember.run.later, which limits the frequency of function calls.

You could just add a refresh to your model, similar to this:

App.Model = DS.Model.extend({
   poll: function() {
      var _this = this;
      Ember.run.later( function() {
         _this.reload(); 
         _this.poll();
      }, 500);
   }.observes('didLoad'),
});

If you are not using Ember data you can simply add a recursive setTimeout or setInterval in you controller and set the model property. Here is a simple example setting the model from a UI event.

If you are using ember-data I think the following threads have more accurate solutions:

  • Ember model reloading in interval
  • How to reload an ember data record?