Emberjs - OneToManyViews v2
by amindunited
HTML
<script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0.beta6/handlebars.min.js"></script>
<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">
<script src="https://github.com/downloads/pangratz/ember.js/ember-latest.js"></script>
<script type="text/x-handlebars" data-template-name="application">
+++++++
{{outlet "navigation"}}
+++++++++++++
</script>
<script type="text/x-handlebars" data-template-name="Nav">
________________
<h1>Navigation</h1>
________________
</script>
<script type="text/x-handlebars" data-template-name="NavItem">
--{{outlet}}--
</script>
CSS
a {
cursor: pointer;
}
.foo {
color:red;
}
JavaScript
$(function(){
//Bind Application name to window
window.App = Em.Application.create({
autoInit: false
})
//Create Application controller, view and router
App.ApplicationController = Em.Controller.extend();
App.ApplicationView = Em.View.extend({});
App.router = Em.Router.create({
enableLogging:true,
location: 'none',
root:Em.Route.extend({
index:Em.Route.extend({
route:'/',
connectOutlets:function(router, context){
router.get('applicationController').connectOutlet('navigation', 'navigation');
},
})
})
});
App.NavItemsController = Em.Controller.extend()
App.NavItems = Em.Object.create({
content:[]
})
App.NavItemsData = Em.Object.create({
content:[
{text:"one"},
{text:"two"},
{text:"three"},
{text:"four"},
{text:"five"},
{text:"six"}
]
});
App.NavItem = Em.Object.extend();
App.NavItemController = Em.Controller.extend();
App.NavItemView = Em.View.extend();
App.Navigation = Em.Object.create({
});
App.NavigationController = Em.Controller.extend({
});
App.NavigationView = Em.View.extend({
templateName: 'Nav',
didInsertElement:function(){
$.each(App.NavItemsData.content, function(i, obj){
//console.log(obj);
App.NavItems.content.pushObject(App.NavItem.create(obj))
})
}
});
//Start the app
App.initialize(App.router);
});