Skip to content

Instantly share code, notes, and snippets.

@veberle-CSD
Created July 16, 2018 22:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save veberle-CSD/b31795a746eb3f304725c1df1d4744d2 to your computer and use it in GitHub Desktop.
Save veberle-CSD/b31795a746eb3f304725c1df1d4744d2 to your computer and use it in GitHub Desktop.
New Twiddle
import Ember from 'ember';
const { computed: { reads } } = Ember;
export default Ember.Component.extend({
firstName: reads('job.firstName'),
lastName: reads('job.lastName'),
title: reads('job.title'),
actions: {
submit() {
let jobProps = this.getProperties('firstName', 'lastName', 'title');
this.get('onSubmit')(jobProps);
},
updateTitle(value) {
this.set('title', value);
}
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
actions: {
setNewJobTitle() {
this.get('model').set('title', 'A New Updated Title');
},
updateJob(props) {
this.get('model').setProperties(props);
}
}
});
import Model from 'ember-data/model';
import attr from 'ember-data/attr';
import { belongsTo, hasMany } from 'ember-data/relationships';
export default Model.extend({
title: attr('string'),
firstName: attr('string'),
lastName: attr('string')
});
import Ember from 'ember';
export default Ember.Route.extend({
model() {
return this.store.createRecord('job', { title: 'My First Job', firstName: 'Vincent', lastName: 'Eberle' });
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
Job.Title = {{model.title}}
<br>
<br>
Job.FirstName = {{model.firstName}}
<br>
<br>
Job.LastName = {{model.lastName}}
<br>
<br>
{{my-component job=model onSubmit=(action "updateJob")}}
<br>
<br>
<button {{action "updateTitle"}}>Update Title</button>
{{title}}
<br>
<br>
{{firstName}}
<br>
<br>
{{lastName}}
<br>
<br>
<input type="text" value={{title}} oninput={{action "updateTitle" value="target.value"}}>
<button {{action "submit"}}>Submit</button>
{
"version": "0.15.0",
"EmberENV": {
"FEATURES": {}
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js",
"ember": "3.2.2",
"ember-template-compiler": "3.2.2",
"ember-testing": "3.2.2"
},
"addons": {
"ember-data": "3.2.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment