ember template/view problem
by samselikoff
HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.0.0-rc.3/handlebars.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.0.0-rc.6/ember.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ember-data.js/0.13.0/ember-data-latest.min.js"></script>
<title>JS Bin</title>
<body>
<script type="text/x-handlebars" data-template-name="application">
<h1>App template!</h1>
{{ outlet }}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h1>Index</h1>
</script>
<script type="text/x-handlebars" data-template-name="month">
<h1 class='soft title'>{{id}}</h1>
{{ outlet }}
</script>
<script type="text/x-handlebars" data-template-name="month/summary">
{{#view App.SummaryContainerView activeTab='summaryCompany'}}
<div id="summary-breakdown-container" class="summary-breakdowns">
<div class="btn-group">
{{#view App.SummaryContainerButton value='summaryCompany'}}Breakdown by Company{{/view}}
{{#view App.SummaryContainerButton value='summaryDivision'}}Breakdown by Division{{/view}}
{{#view App.SummaryContainerButton value='summaryCategory'}}Breakdown by Category{{/view}}
</div>
<div class="bordered">
<div id="breakdown-chart">
{{ outlet tab }}
</div>
</div>
</div>
{{/view}}
</script>
<script type="text/x-handlebars" data-template-name="summaryCompany">
<p>Company</p>
</script>
<script type="text/x-handlebars" data-template-name="summaryDivision">
<p>Division graph</p>
</script>
<script type="text/x-handlebars" data-template-name="summaryCategory">
<p>Category graph</p>
</script>
</body>
</html>
JavaScript
var App = Ember.Application.create({});
App.Store = DS.Store.extend({
adapter: DS.FixtureAdapter.create()
});
App.Router.map(function () {
this.resource('month', {
path: '/:month_id'
}, function () {
this.route('summary');
this.resource('companies', function () {
this.resource('company', {
path: '/:company_id'
});
});
});
});
App.MonthSummaryRoute = Ember.Route.extend({
events: {
selectTab: function (name) {
this.render(name, {
into: 'month/summary',
outlet: 'tab'
});
}
},
model: function () {
return App.Month.find("Mar-2013");
}
});
// Views
App.SummaryContainerView = Ember.View.extend({
didInsertElement: function () {
this.get('controller').send('selectTab', this.get('activeTab'));
}
});
App.SummaryContainerButton = Ember.View.extend({
tagName: 'a',
classNames: ['btn'],
classNameBindings: ['active'],
containerView: function () {
return this.nearestOfType(App.SummaryContainerView);
}.property(),
active: function () {
return this.get('containerView.activeTab') == this.get('value');
}.property('containerView.activeTab'),
click: function () {
this.set('containerView.activeTab', this.get('value'));
this.get('controller').send('selectTab', this.get('value'));
}
});
// Models
App.Month = DS.Model.extend({});
App.Month.FIXTURES = [{
id: 'Mar-2013'
}];