Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Ember Starter Kit</title>
  <link rel="stylesheet" href="http://cdnjs.cloudflare.com/ajax/libs/normalize/3.0.1/normalize.css">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
  <script src="http://builds.emberjs.com/tags/v1.13.5/ember-template-compiler.js"></script>
  <script src="http://builds.emberjs.com/tags/v1.13.5/ember.debug.js"></script>
  <script src="http://builds.emberjs.com/tags/v1.13.6/ember-data.js"</script>
</head>
<body>
  <script type="text/x-handlebars">
    <h2>Welcome to Ember.js</h2>
    {{outlet}}
  </script>
  <script type="text/x-handlebars" data-template-name="index">
    <ul>
    {{#each model as |item|}}
      <li>{{item.value}}</li>
    {{/each}}
    </ul>
    
    {{if (purple model 'value') 'found purple' 'no purple'}}
    
    <button {{action 'turnPurple'}}>Test</button>
  </script>
</body>
</html>
 
/* Put your CSS here */
html, body {
  margin: 20px;
}
 
App = Ember.Application.create();
App.ApplicationAdapter = DS.FixtureAdapter.extend();
App.Color = DS.Model.extend({
  value: DS.attr('string')
});
App.Color.FIXTURES = [
  {
    id: 1,
    value: 'peach'
  },
  {
    id: 2,
    value: 'pink'
  },
  {
    id: 3,
    value: 'blue'
  }
];
App.Router.map(function() {
  // put your routes here
});
App.IndexRoute = Ember.Route.extend(
{
  model: function() {
    return this.store.findAll('color');
  }
}
);
App.IndexController = Ember.Controller.extend({
  actions: {
    turnPurple: function() {
      this.get('model').forEach(function(color) {
        color.set('value', 'purple');
      });
    }
  }
});
 
App.PurpleHelper = Ember.Helper.extend({
  compute: function(params) {
    var array = params[0];
    var property = params[1];
    var found = false;
    array.forEach(function(color) {
      if (color.get(property) === 'purple') {
        found = true;
      }
    });
    this._setupObserver(array, property);
    
    return found;
  },
  _setupObserver: function(array, property) {
    this.set('_array', array);
    this.addObserver('_array.@each.' + property, function() {   
      this.recompute(); 
    });
  }
});
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
rwjbluepro
0viewers