Skip to content

Instantly share code, notes, and snippets.

@louim
Created April 14, 2017 03:56
Show Gist options
  • Save louim/8e0d17341b3bb3d67e464b09c3340610 to your computer and use it in GitHub Desktop.
Save louim/8e0d17341b3bb3d67e464b09c3340610 to your computer and use it in GitHub Desktop.

Revisions

  1. louim created this gist Apr 14, 2017.
    5 changes: 5 additions & 0 deletions controllers.application.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,5 @@
    import Ember from 'ember';

    export default Ember.Controller.extend({
    appName: 'Ember Twiddle'
    });
    8 changes: 8 additions & 0 deletions models.book.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    import Model from "ember-data/model";
    import attr from "ember-data/attr";
    import { belongsTo, hasMany } from "ember-data/relationships";

    export default Model.extend({
    name: attr(),
    category: belongsTo('category')
    });
    7 changes: 7 additions & 0 deletions models.category.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    import Model from "ember-data/model";
    import attr from "ember-data/attr";
    import { belongsTo, hasMany } from "ember-data/relationships";

    export default Model.extend({
    name: attr()
    });
    18 changes: 18 additions & 0 deletions routes.application.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    import Ember from 'ember';

    export default Ember.Route.extend({
    model() {
    this.store.createRecord('category', { id: 1, name: 'First Category' });
    this.store.createRecord('category', { id: 2, name: 'Second Category' });

    return this.store.createRecord('book', {
    id: 1,
    name: 'A Book',
    category: this.get('store').peekRecord('category', 2)
    });
    },
    setupController(controller, model) {
    this._super(...arguments);
    controller.set('categories', this.store.peekAll('category'));
    }
    });
    17 changes: 17 additions & 0 deletions templates.application.hbs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,17 @@
    <h1>Welcome to {{appName}}</h1>
    <br>
    <br>
    Record: {{model.name}}
    <br>
    Assigned category name: {{model.category.name}}
    <br>
    {{one-way-select model.category
    options=categories
    optionValuePath="id"
    optionLabelPath="name"
    includeBlank="please select a value"
    promptIsSelectable=true
    update=(action (mut model.category))
    }}
    <br>
    <br>
    20 changes: 20 additions & 0 deletions twiddle.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    {
    "version": "0.12.1",
    "EmberENV": {
    "FEATURES": {}
    },
    "options": {
    "use_pods": false,
    "enable-testing": false
    },
    "dependencies": {
    "jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
    "ember": "2.12.0",
    "ember-template-compiler": "2.12.0",
    "ember-testing": "2.12.0"
    },
    "addons": {
    "ember-data": "2.12.1",
    "ember-one-way-controls": "2.0.0"
    }
    }