Ember Latest

The latest build of Ember.

HTML

<script src="http://builds.emberjs.com/handlebars-1.0.0.js"></script>
<script src="http://builds.emberjs.com/ember-latest.js"></script>
<script type="text/x-handlebars" data-template-name="application">
    <h1>ember-latest jsfiddle</h1>
    {{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
  <h2>Index Content:</h2>
  <ul>
  {{#each itemViewClass="App.ItemView"}}
      <li>{{view view.helper}} {{lastName}}</li>
  {{/each}}
   </ul>
</script>

CSS

h1 { font-size: 1.6em; padding-bottom: 10px; }
h2 { font-size: 1.4em; }
ul { padding: 15px; font-size: 1.4em; color: green; }

JavaScript

App = Ember.Application.create({});

App.IndexRoute = Ember.Route.extend({
  model: function(){
      return [
          {firstName: 'Kris', lastName: 'Selden', typeId: 1},
           {firstName: 'Luke', lastName: 'Melia', typeId: 1},
           {firstName: 'Formerly Alex', lastName: 'Matchneer', typeId: 2}
      ];
  }
});

App.ItemView = Ember.View.extend({
    helper: Ember.View.extend({
        tagName: 'span',
        template: function() {
            var type = this.get('context.typeId') === 1 ? 'foo' : 'bar';
            return Ember.Handlebars.compile("{{" + type + " this.firstName}}")
        }.property()
    })
});

Ember.Handlebars.helper('foo', function(value, options) {
  var escaped = Handlebars.Utils.escapeExpression(value);
  return new Handlebars.SafeString('foooo ' + escaped);
});

Ember.Handlebars.helper('bar', function(value, options) {
  var escaped = Handlebars.Utils.escapeExpression(value);
  return new Handlebars.SafeString('bar ' + escaped);
});