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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
timgthomas
July 24, 2015
Technology
120
0
Share
Ember ATX: Ember.Evented
Lightning talk about one of my favorite Ember mixins, Ember.Evented!
timgthomas
July 24, 2015
More Decks by timgthomas
See All by timgthomas
Living Style Guides: Bringing Designers and Developers Together
timgthomas
0
260
Icons and the Web: Symbols of the Modern Age
timgthomas
0
190
Constructing Modern UIs with SVG
timgthomas
0
220
Browser Invasion: Desktop Apps and the Web
timgthomas
0
180
Mind the Gap: Bringing Designers and Developers Together
timgthomas
0
140
Zero to App Store: A Hybrid App’s Tale
timgthomas
1
170
Chocolate-Covered Vegetables: Tasty Workflows with Broccoli
timgthomas
0
170
Ember ATX: Components
timgthomas
0
100
Chocolate-Covered Vegetables: Tasty Workflows with Broccoli
timgthomas
0
410
Other Decks in Technology
See All in Technology
Sony_KMP_Journey_KotlinConf2026
sony
0
180
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
630
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
2
180
地元にいないローカルオーガナイザーの立ち回り
uvb_76
1
380
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
270
AIが変えた"品質の守り方"
kkakizaki
13
5.4k
脅威をエンジニアリングの糧にして:恐怖を乗り越えた先にあったもの / Turn threats into fuel for engineering: what lay beyond overcoming fear
nrslib
1
350
Amazon CloudFrontにおけるAIボットアクセス制御のポイント
kizawa2020
5
310
Cloud Run のアップデート 触ってみる&紹介
gre212
0
260
AI時代から振り返るTerraform drift運用の歴史 / AI Age Reflections on the History of Terraform Drift Operations
aeonpeople
0
600
AI Adaptable なテストを整える工夫 / Ways to Make Your Tests AI-Adaptable
bitkey
PRO
2
180
React、まだ楽しくて草
uhyo
2
320
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Design in an AI World
tapps
1
220
Tell your own story through comics
letsgokoyo
1
930
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
250
Agile that works and the tools we love
rasmusluckow
331
21k
Building Applications with DynamoDB
mza
96
7.1k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
520
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
BBQ
matthewcrist
89
10k
Claude Code のすすめ
schroneko
67
220k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
520
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!