Skip to content

Instantly share code, notes, and snippets.

@adamesque
Last active November 3, 2015 22:22
Show Gist options
  • Save adamesque/c8024dcdec08da46e5c6 to your computer and use it in GitHub Desktop.
Save adamesque/c8024dcdec08da46e5c6 to your computer and use it in GitHub Desktop.
List Test
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle',
items: "one two three".w(),
actions: {
handleSelect(item) {
alert(item);
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{#list-view items=items onSelect=(action 'handleSelect') as |item selected onSelect|}}
{{! use a component }}
{{list-item value=item isSelected=selected onSelect=onSelect}}
{{! or your own markup }}
{{!--
<b {{action onSelect}}>{{item}} {{if selected 'is grate'}}</b>
--}}
{{/list-view}}
<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({
tagName: 'li',
classNameBindings: ['isSelected'],
click() {
let onSelect = this.get('onSelect');
if (typeof onSelect === 'function') {
onSelect();
}
}
});
import Ember from 'ember';
export default Ember.Component.extend({
selectedItem: null,
actions: {
onSelect(item) {
let onSelect = this.get('onSelect');
this.set('selectedItem', item);
typeof onSelect === 'function' && onSelect(item);
}
}
});
{{#each items as |item|}}
{{yield item (eq item selectedItem) (action 'onSelect' item)}}
{{/each}}
body {
margin: 12px 16px;
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
font-size: 12pt;
}
li {
cursor: default;
}
.is-selected {
color: hotpink;
}
{
"version": "0.4.16",
"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