Skip to content

Instantly share code, notes, and snippets.

@scottkidder
Created October 29, 2015 18:43
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 scottkidder/6bac500d6b1ff7f5147f to your computer and use it in GitHub Desktop.
Save scottkidder/6bac500d6b1ff7f5147f to your computer and use it in GitHub Desktop.
mrbubbles-computed-on-hash
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle'
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{my-component}}
{{outlet}}
<br>
<br>
import Ember from 'ember';
var computed = Ember.computed;
export default Ember.Component.extend({
isSaving: false,
meter: Ember.Object.extend({
nickname: '',
location: '',
latitude: '',
longitude: '',
}).create(),
isPrimaryButtonDisabled: computed('meter.{nickname,location,latitude,longitude}', function() {
console.log('a');
var meter = this.get('meter');
var nicknameEmpty = meter.get('nickname').length === 0;
var locationEmpty = meter.get('location').length === 0;
var latitudeEmpty = meter.get('latitude').length === 0;
var longitudeEmpty = meter.get('longitude').length === 0;
if (nicknameEmpty || locationEmpty || latitudeEmpty || longitudeEmpty) {
return 'disabled';
}
return null;
}),
actions: {
saveMeter() {
console.log("saving the meter", this.get('meter'));
this.attrs.saveMeter(this.get('meter'));
},
},
});
<h1>My Component</h1>
<table>
<tr>
<td>meter.nickname</td>
<td>{{input value=meter.nickname}}</td>
</tr>
<tr>
<td>meter.location</td>
<td>{{input value=meter.location}}</td>
</tr>
<tr>
<td>meter.latitude</td>
<td>{{input value=meter.latitude}}</td>
</tr>
<tr>
<td>meter.longitude</td>
<td>{{input value=meter.longitude}}</td>
</tr>
<button {{action 'saveMeter'}} type='button' disabled={{isPrimaryButtonDisabled}}>
Primary Button
</button>
</table>
{
"version": "0.4.14",
"EmberENV": {
"FEATURES": {}
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.1.0/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.1.0/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.1.0/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment