Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //The Controllers:
- App.AlertsController = Ember.ArrayController.extend({
- sortProperties: ['createdAt:desc'],
- sortedModel: Ember.computed.sort("model", "sortProperties"),
- remaining: function() {
- console.log(this.filterBy('isCompleted', false).get('length'));
- return this.filterBy('isCompleted', false).get('length');
- }.property('@each.isCompleted')
- });
- App.MenuController = Ember.ObjectController.extend({
- needs: ['alerts'],
- alertsBinding: 'controllers.alerts'
- });
- //The Route:
- App.AlertsRoute = Ember.Route.extend({
- model: function() {
- return this.store.find('alert');
- }
- });
- //The model:
- App.Alert = DS.Model.extend({
- label: DS.attr('string'),
- text: DS.attr('string'),
- createdAt: DS.attr('number'),
- isCompleted: DS.attr('boolean')
- });
- App.Alert.FIXTURES = [
- {
- id: 1,
- label: 'Alert 1',
- text: 'Lorem ipsum dolor sit amet',
- createdAt: Date.now(),
- isCompleted: false
- },
- {
- id: 2,
- label: 'Alert 2',
- text: 'consectetur adipiscing elit',
- createdAt: Date.now() +1,
- isCompleted: false
- },
- {
- id:3,
- label: 'Alert 3',
- text: 'sed do eiusmod tempor incididunt ut labore et dolore magna aliqua',
- createdAt: Date.now()+2,
- isCompleted: false
- }
- ];
- //The templates:
- <script type="text/x-handlebars" data-template-name="home">
- <img {{bind-attr src=appInfo.headerImage}} id="header_image" alt="Header Image" />
- {{render "alerts" model}}
- <ul id="home_nav">
- {{render "menu" model}}
- </ul>
- </script>
- <script type="text/x-handlebars" data-template-name="alerts">
- <h4>Alerts: </h4>
- Alerts ({{remaining}})<!-- this returns 3 -->
- <ul class="alert_list">
- {{#each alert in sortedModel}}
- <li>
- {{#link-to 'alert' alert.id}}
- {{alert.label}}
- {{/link-to}}
- </li>
- {{/each}}
- </ul>
- </script>
- <script type="text/x-handlebars" data-template-name="alert">
- <h1>{{label}}</h1>
- <p>{{text}}</p>
- </script>
- <script type="text/x-handlebars" data-template-name="menu">
- <li>
- {{#link-to 'alerts'}}
- Alerts ({{controller.alerts.remaining}})<!-- this returns 0 -->
- Alerts ({{alerts.remaining}})<!-- this returns 0 -->
- Alerts ({{remaining}})<!-- this returns nothing -->
- {{/link-to}}
- </li>
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement