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/2.1.0/normalize.css">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  <script src="http://builds.handlebarsjs.com.s3.amazonaws.com/handlebars-v1.3.0.js"></script>
  <script src="http://builds.emberjs.com/tags/v1.8.1/ember.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">
    Called {{called}} times<br />
    
    <button {{action 'click'}}>Click me</button><br /><br />
    
    Max: {{max}}<br /><br />
    {{#each item in items}}
      {{item.content}}<br/>
    {{/each}}
  </script>
</body>
</html>
 
/* Put your CSS here */
html, body {
  margin: 20px;
}
 
App = Ember.Application.create();
App.Router.map(function() {});
App.IndexRoute = Ember.Route.extend({});
App.IndexController = Ember.Controller.extend({
  onePossibleSource: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
  otherPossibleSource: [10,13],
  
  useFirst: true,
  
  source: function() {
    if (this.get('useFirst')) {
      return this.get('onePossibleSource');
    } else {
      return this.get('otherPossibleSource');
    }
  }.property('onePossibleSource', 'otherPossibleSource', 'useFirst'),
  
  
  items: Em.computed.map('source', function(i) { 
    return Em.Object.extend({
      content: i,
      scope: this,
      dep: function() {
        return this.get('scope.length') * this.get('content');
      }.property('scope.length', 'content')
    }).create(); 
  }),
  
  
  called: 0,
  length: function() {
    this.incrementProperty('called'); // this is an expensive operation
    return this.get('items.length');
  }.property('items.[]'),
  
  
  nums: Em.computed.mapBy('items', 'dep'),
  max: Em.computed.max('nums'),
  
  
  actions: {
    click: function() {
      this.toggleProperty('useFirst');
    }
  }
});
Output

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

Dismiss x
public
Bin info
anonymouspro
0viewers