Example EmberData

by nrionfx

HTML

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="https://raw.github.com/wycats/handlebars.js/1.0.0-rc.3/dist/handlebars.js"></script>
<script src="https://raw.github.com/emberjs/ember.js/release-builds/ember-1.0.0-rc.1.js"></script>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css">
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script src="https://gist.github.com/nrion/5145511/raw/d6d9ca20784374ce11cc3e66a7d1e410a216d764/ember-data-12.js"></script>
<script type="text/x-handlebars">
    <h6>App Layout</h1>
    {{outlet}}    
</script>
<script type="text/x-handlebars" data-template-name="index">
    {{controller}}
<ul>
  {{#each bugs}}
    <li>{{name}}</li>
  {{/each}}
</ul>

{{#view App.CreateBugView}}
  Create new bug!
{{/view}}
</script>

<script type="text/x-handlebars" data-template-name="acc_item">
        <div class="accordion-group">
          <div class="accordion-heading">
            <a class="accordion-toggle" data-toggle="collapse"  {{bindAttr href="item.href" }}>
              {{item.firstName}}
            </a>
          </div>
          <div {{bindAttr id='item.id' }} class="accordion-body collapse in">
            <div class="accordion-inner">
              {{item.fullName}}
            </div>
          </div>
        </div>
</script>

CoffeeScript

App = Em.Application.create()
window.App=App
# Models

App.Bug = DS.Model.extend
  name: DS.attr 'string'

# Views

App.CreateBugView = Em.View.extend
  tagName: 'button'

  click: (evt) ->
    bug = App.Bug.createRecord
      name: 'Sean'
    @.get('controller').save()

App.IndexController = Em.ArrayController.extend
    save: ->
        console?.log("Commiting changes to store")
        @store.commit()

# Routes

App.IndexRoute = Em.Route.extend
  model: -> App.Bug.find()
  setupController: (controller, bugs) ->
    controller.set 'bugs', bugs
    controller.set 'App', App

# Store

App.Store = DS.Store.extend
  revision: 12
  adapter: 'DS.FixtureAdapter'

    
App.Bug.FIXTURES = [
    {id: 1, name: 'first'},
    {id: 2, name: 'second'}
];
# Router

App.Router.map ->
  @route 'index', path: '/'