×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Components
Slide 2
Slide 2 text
Tim G. Thomas @timgthomas timgthomas.com
Slide 3
Slide 3 text
Components
Slide 4
Slide 4 text
{{ember-atx}}
Slide 5
Slide 5 text
Controller + View (+ Template) Route-less
Slide 6
Slide 6 text
Why?
Slide 7
Slide 7 text
Using Components
Slide 8
Slide 8 text
{{ember-atx}}
Slide 9
Slide 9 text
/* ember-atx.hbs */
‚
/* elsewhere... */ {{ember-atx}}
Slide 10
Slide 10 text
/* ember-atx.hbs */
‚
/* In 1.13... */
Slide 11
Slide 11 text
export default Ember.Component.extend({ });
Slide 12
Slide 12 text
export default Ember.Component.extend({ didInsertElement() { // I'm a view! } });
Slide 13
Slide 13 text
export default Ember.Component.extend({ didInsertElement() { this.$().fadeOut(); } });
Slide 14
Slide 14 text
export default Ember.Component.extend({ itemCount: function() { // No, wait...I'm a Controller! }.property() });
Slide 15
Slide 15 text
export default Ember.Component.extend({ itemCount: function() { return this.get('items'); }.property('items') });
Slide 16
Slide 16 text
{{ember-atx items=model}}
Slide 17
Slide 17 text
export default Ember.Component.extend({ items: function() { return Ember.$ .getJSON('/dont/tell/anyone'); }.property() });
Slide 18
Slide 18 text
foo: 'bar', actions: { somethingHappened() { this.attrs.foo.call({}); } }
Slide 19
Slide 19 text
Slide 20
Slide 20 text
{{yield}}
{{#ember-atx}} I'm a lumberjack and I'm okay... {{/ember-atx}}
Slide 21
Slide 21 text
{{component 'component-name'}}
Slide 22
Slide 22 text
guides.emberjs.com ember-components.com timgthomas.com Don't go here!
Slide 23
Slide 23 text
Thanks! @timgthomas