Skip to content

Instantly share code, notes, and snippets.

@ptgamr
Last active September 29, 2020 22:57
Show Gist options
  • Save ptgamr/c0eed7429377b94deb56733b20d7b83d to your computer and use it in GitHub Desktop.
Save ptgamr/c0eed7429377b94deb56733b20d7b83d to your computer and use it in GitHub Desktop.
Ember playground
import Controller from '@ember/controller';
import EmberObject, { computed, action } from '@ember/object';
let Person = EmberObject.extend({
// these will be supplied by `create`
firstName: null,
lastName: null,
address: {
road: 'Northland',
},
fullName: computed('firstName', 'lastName', function() {
let firstName = this.get('firstName'),
lastName = this.get('lastName');
return `${firstName} ${lastName}`;
})
});
export default class ApplicationController extends Controller {
tom = Person.create({
firstName: 'Tom',
lastName: 'Dale'
})
@computed('tom.{fullName,address.road}')
get appName() {
return this.tom.fullName + this.tom.address.road
}
@action
changeAddress() {
this.tom.set('address.road', Date.now());
}
}
<h1>Welcome to {{this.appName}}</h1>
<button type="button" {{on "click" this.changeAddress}}>Change address</button>
<br>
<br>
{{outlet}}
<br>
<br>
{
"version": "0.17.1",
"EmberENV": {
"FEATURES": {},
"_TEMPLATE_ONLY_GLIMMER_COMPONENTS": false,
"_APPLICATION_TEMPLATE_WRAPPER": true,
"_JQUERY_INTEGRATION": true
},
"options": {
"use_pods": false,
"enable-testing": false
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js",
"ember": "3.18.1",
"ember-template-compiler": "3.18.1",
"ember-testing": "3.18.1"
},
"addons": {
"@glimmer/component": "1.0.0"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment