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);
});