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
170
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
Snowflake でできることが増えたら、 ABAC が必要になった
kaeton
0
120
AI駆動開発におけるハーネスエンジニアリングの勘所
tsukuboshi
1
880
Claude Codeから見る、エンジニアの世界の変容とその先
oikon48
7
4.9k
【Oracle AI SPOTLIGHT ウェビナー】事例から見る!なぜOCIが選ばれたのか ― AI時代のクラウド戦略を紐解く ―
oracle4engineer
PRO
1
140
Agent 活用環境の構築・運用のための AWS サービスのご紹介/agentcore-for-building-and-operating-agents
ren8k
1
280
素人でもできた!AIを使った短編小説創作入門
delhi09
PRO
0
250
Technical Project Manager の役割とやりがい、少しだけ AI
yoshiiryo1
0
280
Draft AIエージェントの トークン消費を最小化する 8つの原則
kinopeee
6
1.9k
構造で守らせる データ・法務・セキュリティ・開発チームとつくる AI時代のデータガバナンスとデータ基盤のリアル
legalontechnologies
PRO
2
690
基本から分かる!AWSセキュリティ運用の考え方と任せ方
cmusudakeisuke
1
260
AIエージェント時代、Kaggleにどう取り組むか
takanao
2
410
AWS Continuum for Penetration Testing に Deep Dive してみる
asanoharuki
2
1.5k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
470
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
We Are The Robots
honzajavorek
0
410
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
WENDY [Excerpt]
tessaabrams
14
40k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
70
68k
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!