Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ember ATX: Ember.Evented
Search
timgthomas
July 24, 2015
Technology
0
120
Ember ATX: Ember.Evented
Lightning talk about one of my favorite Ember mixins, Ember.Evented!
timgthomas
July 24, 2015
Tweet
Share
More Decks by timgthomas
See All by timgthomas
Living Style Guides: Bringing Designers and Developers Together
timgthomas
0
240
Icons and the Web: Symbols of the Modern Age
timgthomas
0
180
Constructing Modern UIs with SVG
timgthomas
0
210
Browser Invasion: Desktop Apps and the Web
timgthomas
0
160
Mind the Gap: Bringing Designers and Developers Together
timgthomas
0
130
Zero to App Store: A Hybrid App’s Tale
timgthomas
1
160
Chocolate-Covered Vegetables: Tasty Workflows with Broccoli
timgthomas
0
140
Ember ATX: Components
timgthomas
0
88
Chocolate-Covered Vegetables: Tasty Workflows with Broccoli
timgthomas
0
390
Other Decks in Technology
See All in Technology
Phase05_ClaudeCode入門
overflowinc
0
1.9k
既存アプリの延命も,最新技術での新規開発も:WebSphereの最新情報
ktgrryt
0
160
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
4
1.8k
モジュラモノリス導入から4年間の総括:アーキテクチャと組織の相互作用について / Architecture and Organizational Interaction
nazonohito51
3
1.7k
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
240
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
Phase04_ターミナル基礎
overflowinc
0
2.1k
Blue/Green Deployment を用いた PostgreSQL のメジャーバージョンアップ
kkato1
0
110
20260323_データ分析基盤でGeminiを使う話
1210yuichi0
0
170
今日から始められるテスト自動化 〜 基礎知識から生成AI活用まで 〜
magicpod
1
140
visionOS 開発向けの MCP / Skills をつくり続けることで XR の探究と学習を最大化
karad
1
1.2k
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
100
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
160
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
220
My Coaching Mixtape
mlcsv
0
84
A Modern Web Designer's Workflow
chriscoyier
698
190k
Designing for Performance
lara
611
70k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
220
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
150
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
200
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
810
Abbi's Birthday
coloredviolet
2
5.6k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
170
Transcript
Hi!
@timgthomas
Scenario
// models/item.js export default Ember.Object.extend({ actions: { save() { this.set('savedAt',
new Date()); } } }); // components/show-item.js export default Ember.Component.extend({ itemSaved: function() { // ... }.observes('item.savedAt') });
”Data Down, Actions Up“
Ember.Evented
// models/item.js export default Ember.Object.extend(Ember.Evented, { actions: { save() {
this.trigger('saved'); } } }); // components/show-item.js export default Ember.Component.extend({ init() { this._super(); this.get('item').on('saved', this.itemSaved); } });
// controllers/list.js export default Ember.Controller.extend(Ember.Evented, { actions: { save() {
this.trigger('saved'); } } }); // controllers/item.js export default Ember.Controller.extend({ init() { this._super(); this.get('controllers.list').on('saved', () => {}); } });
Route Hierarchy Gotcha!
let controller = this.get('controllers.foo'); controller.trigger('foo'); controller.trigger('foo', 'bar'); controller.on('foo', () =>
{}); controller.off('foo', () => {}); controller.one('foo', () => {}); controller.has('foo');
bit.ly/ember-evented
Thanks!