I found the answer as an answer to another question .
If you have a listener for each element of the array, for example:
App.IssuesController = Ember.ArrayController.extend({ issue_list: ['a','b','c'], issueListObserver : function(){ Ember.run.once(this, this.categorize); }.observes(' issue_list.@each "), this.categorize: function () { console.log('foo'); } });
Without Ember.run.once , this.categorize() will be called for each item managed in the list. If the three elements are changed, then there will be three calls. With the category wrapped in Ember.run.once , it will only be called once at the end of the chain.
source share