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
Emberjs
Search
Artur Kremens
October 20, 2014
Programming
0
77
Emberjs
Building an Ember App with Ruby on Rails Part 1
Artur Kremens
October 20, 2014
Tweet
Share
Other Decks in Programming
See All in Programming
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
CSC307 Lecture 04
javiergs
PRO
0
660
Basic Architectures
denyspoltorak
0
660
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1k
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
CSC307 Lecture 09
javiergs
PRO
1
830
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.3k
Oxlint JS plugins
kazupon
1
860
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
180
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
180
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
210
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
GitHub's CSS Performance
jonrohan
1032
470k
Deep Space Network (abreviated)
tonyrice
0
47
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
300
Why Our Code Smells
bkeepers
PRO
340
58k
Are puppies a ranking factor?
jonoalderson
1
2.7k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
54
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
110
Transcript
Emberjs part one http://emberjs.com
What do we need? • gem 'ember-rails' • gem 'bower-rails'
• gem 'emblem-rails' • http://www.ember-cli.com/
Bower - js package manager • Using with RoR ◦
Bowerfile ◦ initializer ◦ install assets rake bower:install (!) • Package manager ◦ http://bower.io
Getting started • Application structure • Application root element EmberApp
= Ember.Application.create({ rootElement: '#ember-application-holder' })
Router • Application route • Index route • Routes extend
EmberApp.Router.map -> @resource 'page', path: '/', -> @resource 'users', path: '/users', -> @route 'show', path: ':id'
Naming conventions • Router: ◦ AppName.PageRoute ◦ page_route.js.coffee • Controller:
◦ AppName.PageController ◦ page_controller.js.coffee • View: ◦ AppName.PageView ◦ page_view.js.coffee • Template: page.emblem
Outlets • Application template {{outlet}} • {{outlet name}} Render template
• @render 'users', {into: 'application'} • @render 'users', {into: 'application', outlet: 'modal'} • @render 'users', {into: 'page', outlet: 'page', controller: controller}
Model • Router set model model: (params) -> AppName.ModelName.find(params.id) •
Class methods AppName.ModelName.reopenClass find: (id = null) -> ...
View • actions and events • classNames ◦ classNameBinding •
tagName • template ◦ templateName ◦ template : Ember.Handlebars.compile('content')
• Router set controller setupController: (controller, model) -> controller.set('varName', 'value')
• Ember.ObjectController • Ember.ArrayController Controller
• binding • collection ◦ each controller.model div {{name}} ◦
each controller.model {{component-name nameInComponent=name}} ◦ {{view Ember.CollectionView contentBinding='data' itemViewClass='viewName'}} Templates
Components • Template component ◦ /templates/components/component-name.emblem • Ember Component ◦
/components/component-name.js.coffee
Computed properties • Depends on id and name isFirst: (->
@get('id') == 1 && (@get('id') == 'Artur') ).property('id', 'name') • Ember.computed.not('isFirst')
Thanks for attention Artur Kremens
[email protected]
+48507224476