Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery.min.js">
  </script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js"></script>
  <script src="http://builds.emberjs.com/canary/ember.js"></script>
  <title>computed.filter bug</title>
</head>
<body>
</body>
</html>
 
var item1 = Ember.Object.create({
  incl: true
});
var anObject = Ember.Object.extend({
  collection: [],
  
  filteredCollection1: Ember.computed.filterBy('collection', 'incl'),
  
  filteredCollection2: Ember.computed.filter('collection', function(item) {
    return item.get('incl');
  }),
  
  filteredCollection3: (function() {
    return this.get('collection').filterBy('incl');
  }).property('collection.@each.incl')
});
var object = anObject.create();
// Works without these gets
object.get('filteredCollection1');     
object.get('filteredCollection2'); 
object.get('filteredCollection3');
Ember.run.next(this, function() {
  // This works: 
  // object.get('collection').pushObjects([item1]);
  object.set('collection', [item1]);
  console.log(
    object.get('filteredCollection1.length') === 1,
    object.get('filteredCollection2.length') === 1,
    object.get('filteredCollection3.length') === 1 
  );
});
Output 300px

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers