Ember Starter Kit

by Dogbert

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/handlebars.js/2.0.0/handlebars.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ember.js/1.9.1/ember.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.0.0-beta.14.1/ember-data.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-mockjax/1.5.3/jquery.mockjax.js"></script>
<script type="text/x-handlebars">
    <h2>Welcome to Ember.js</h2>

    {{outlet}}
  </script>

  <script type="text/x-handlebars" data-template-name="index">
    <ul>
    {{#each item in model}}
      <li>
          n: {{item.name}}
          v: {{item.version}}
          d: {{item.description}}
          <ul>
            {{#each module in item.modules}}
              <li>{{module.name}}</li>
            {{/each}}
          </ul>
        </li>
    {{/each}}
    </ul>
  </script>

CSS

/* Put your CSS here */
 html, body {
    margin: 20px;
}

JavaScript

App = Ember.Application.create();
// App.ApplicationAdapter = DS.FixtureAdapter;
// App.ApplicationSerializer = DS.JSONSerializer.extend({});

App.PackageSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    modules: {embedded: 'always'}
  }
});

App.Router.map(function () {
    // put your routes here
});

App.IndexRoute = Ember.Route.extend({
    model: function () {
//        return App.Package.FIXTURES;
        return this.store.find('package');
//        return ['red', 'yellow', 'blue'];
    }
});

App.Package = DS.Model.extend({
    name: DS.attr('string'),
    version: DS.attr('string'),
    description: DS.attr('string'),
    modules: DS.hasMany('module')
});

App.Module = DS.Model.extend({
    name: DS.attr('string'),
    // info: DS.attr,
    description: DS.attr('string'),
//     interface
});

/*App.PackagesRoute = Ember.Route.extend({
    model: function() {
        return this.store.find('package');
    }
});*/


App.Package.FIXTURES = [{
  "id": 1,
  "name": "unordered-containers",
  "version": "0.2.5.1",
  "description": "Efficient hashing-based container types",
  "modules": [
    {
      "name": "Data.HashMap.Lazy",
      "info": {
        "Copyright": "2010-2012 Johan Tibell",
        "License": "BSD-style",
        "Maintainer": "[email protected]",
        "Stability": "provisional",
        "Portability": "portable",
        "Safe Haskell": "Trustworthy",
        "Language": "Haskell98"
      },
      "description": "<p>A map from <em>hashable</em> keys to values.  A map cannot contain\n duplicate keys; each key can map to at most one value.  A <code><a href=\"/package/unordered-containers/0.2.5.1/Data.HashMap.Lazy/HashMap\">HashMap</a></code>\n makes no guarantees as to the order of its elements.</p>\n<p>The implementation is based on <em>hash array mapped tries</em>.  A\n <code><a href=\"/package/unordered-containers/0.2.5.1/Data.HashMap.Lazy/HashMap\">HashMap</a></code> is often faster than other tree-based...