Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Ember ATX: Ember.Evented
Search
timgthomas
July 24, 2015
Technology
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
280
Icons and the Web: Symbols of the Modern Age
timgthomas
0
240
Constructing Modern UIs with SVG
timgthomas
0
250
Browser Invasion: Desktop Apps and the Web
timgthomas
0
220
Mind the Gap: Bringing Designers and Developers Together
timgthomas
0
160
Zero to App Store: A Hybrid App’s Tale
timgthomas
1
200
Chocolate-Covered Vegetables: Tasty Workflows with Broccoli
timgthomas
0
190
Ember ATX: Components
timgthomas
0
120
Chocolate-Covered Vegetables: Tasty Workflows with Broccoli
timgthomas
0
430
Other Decks in Technology
See All in Technology
Turning Repos into the Product Second Brain with an LLM Wiki
linedevth
0
140
AIネイティブ企業への変革。パーソルキャリアが挑む「データメッシュ×ガバナンス」のアーキテクチャ戦略
techtekt
PRO
0
120
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
140
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
140
ポケモン対戦を自動で記録して振り返ろう
fufufukakaka
0
280
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
780
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
7
5.3k
国際カードブランドルール変更に伴うクレジットカード決済取引仕様変更について
k1style
0
150
VLA-JEPA: Enhancing Vision-Language-Action Models with Latent World Models
takmin
0
110
DevelopersIO2026 -バックアップは“消されないこと”が9割-
yoshida0129
0
300
こんにちは!SORACOM です & IoT とは【SORACOM UG 東北 in 八戸】
soracom
PRO
0
170
Codex を使った障害対応机上演習の実際
orgachem
PRO
0
270
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
6.1k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
420
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.5k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
1
280
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
500
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
YesSQL, Process and Tooling at Scale
rocio
174
15k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
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!