Ember Latest

The latest build of Ember.

by marciojunior

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>Dynamic routing</h1>
    {{#each route in App.MenuController}}
        {{#linkToRoute route}}{{route.title}}{{/linkToRoute}}
    {{/each}}
    <p>
        {{outlet}}
    </p>
</script>
<script type="text/x-handlebars" data-template-name="index">
    Index
</script>

<script type="text/x-handlebars" data-template-name="student">
    <h3>Student</h3>
</script>

<script type="text/x-handlebars" data-template-name="payments">
    <h3>Payments</h3>
</script>

<script type="text/x-handlebars" data-template-name="policy">
    <h3>Policy</h3>
</script>

<script type="text/x-handlebars" data-template-name="biography">
    <h3>Biography</h3>
</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

// custom handlebars helper
Ember.Handlebars.registerHelper("linkToRoute", function(path, options) {
    var routeItem = Ember.Handlebars.get(this, path, options);
    return Ember.Handlebars.helpers.linkTo(routeItem.route, options);
});

// application initialization

App = Ember.Application.create();
App.MenuController = Ember.ArrayController.create();

App.deferReadiness();

simulateAjax(function(data) {
    App.MenuController.set("content", data);    
    App.Router.map(function() {
        var router = this;
        data.forEach(function(item) {
           router.route(item.route); 
        });
    });
    App.advanceReadiness();
});

var data = [{"route": "student", "title": "Student Info Page"}, {"route": "payments", "title": "Payments and Pricing"}, {"route": "policy", "title": "Mine"}, {"route": "biography", "title": "About Me"}];

function simulateAjax(func) {
    setTimeout(function() {
        func(data);
    }, 300);
}