Skip to content

Instantly share code, notes, and snippets.

@davidsteinberger
Last active November 5, 2015 08:01
Show Gist options
  • Save davidsteinberger/42c7ecfa4d483213cc20 to your computer and use it in GitHub Desktop.
Save davidsteinberger/42c7ecfa4d483213cc20 to your computer and use it in GitHub Desktop.
@each CP test
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle',
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
#each w/ checkboxes:
{{my-component}}
dropdown:
{{select-test}}
{{outlet}}
<br>
<br>
import Ember from 'ember';
export function eq(params/*, hash*/) {
return params[0] === params[1];
}
export default Ember.Helper.helper(eq);
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
toggle(checkbox, ev) {
console.log('onChecked', checkbox, ev);
checkbox.set('checked', !checkbox.get('checked'));
},
submit() {
console.log('submit', this.get('checked'));
}
},
checkboxes: [
Ember.Object.create({name: 'Checkbox1', checked: true}),
Ember.Object.create({name: 'Checkbox2', checked: false}),
],
checked: Ember.computed('checkboxes.@each.checked', function() {
console.log('recompute');
return this.get('checkboxes').map((checkbox) => {
return checkbox.checked;
});
})
});
{{#each checkboxes as |checkbox|}}
<label>
<input type="checkbox" checked={{checkbox.checked}} {{action 'toggle' checkbox target.value on="click"}}>{{checkbox.name}}
</label>
{{/each}}
<br>
<input type="button" value="Submit" onClick={{action 'submit'}}>
<br>
<br>
Result:
{{!#each checked as |state|}}
{{!state}}
{{!/each}}
{{yield}}
import Ember from 'ember';
export default Ember.Component.extend({
vehicles: [
'Car 1',
'Car 2',
'Car 3'
]
});
<select onchange={{action (mut vehicle) value="target.value"}}>
{{#each vehicles as |vehicleChoice|}}
<option value={{vehicleChoice}} selected={{eq vehicle vehicleChoice}}>{{vehicleChoice}}</option>
{{/each}}
</select>
{{yield}}
{
"version": "0.4.16",
"EmberENV": {
"FEATURES": {}
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "beta",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.1.0/ember-data.js",
"ember-template-compiler": "beta"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment