SlideShare a Scribd company logo
1 of 28
Download to read offline
A Beginner’s Guide to 
Ember.js 
By a Beginner for Beginners 
Richard Martin 
http://richardgmartin.me 
@richardgmartin 
http://richardgmartin.me/web-development/learn-ember
About 
Product Marketer 
Online Marketer 
Company Founder 
Board Director 
Aspiring Developer
Ember.js 
‘A framework for creating ambitious web applications’
Ember.js: What 
• Web application framework written in JavaScript 
• Initial release: 2011 
• Current stable release: 1.8.1 (November 5, 2014) 
• Developers: Yehuda Katz and Tom Dale
Ember.js: How 
• Single Page Application (SPA) 
• Sits on client side and connects to data via API 
• Renders using templates 
• Quick response and load times 
• Dynamic 
• discourse.org
Ember.js: Why 
• Convention over configuration. Rail guards. 
Opinionated. Abstraction. 
• Little amount to code generates lot of complex code 
• MVC + R: familiar, maintainable, and scalable 
• Documentation 
• Community support
Learning Ember.js 
• HTML 
• CSS 
Ember has a steep learning curve 
• JavaScript 
• jQuery 
• MVC 
• Objected oriented development
Free Resources 
• Ember guides: routers, models, templates … 
• Ember API docs: functionality for all classes 
• Ember guide: Build a Ember.js application - blog 
• Vic Ramon’s Ember Tutorial - Rails + Ember 
• Ember Watch 
• Ember Fest 
• Ember Conf 
• Smashing Magazine 
• Blogs: EvilTrout, Cory Forsyth, Matthew Beale
Paid Resources 
• Code School: Warming up to Ember 
• Lynda: Up and running with Ember 
• Team Gaslight: Introduction to Ember 
• Tuts+ 
• unspace.ca/embergarten 
• airpair
Core Concepts 
1.Router 
2.Route 
3.Templates 
4.Controllers 
5.Models 
6.Components
Extras 
• Ember Inspector 
• Ember Data 
• Ember CLI 
• Ember.View
Orientation
1. Router 
• Handles all requests and maps a path into a route 
• Prebuilds a lot of code internally 
• ‘Convention over configuration’ starts here
2. Routes 
• A URL pointing to a specific section of web app 
• Provides data from external sources and passes to Ember Controller 
• Decides what model to use 
• Decides what template to render to screen
Route Types 
• Routes (regular) - adjectives, verbs, adverbs 
this.route(‘onsale’); 
• Resource routes - nouns (a thing) 
this.resource(‘products’); 
• Dynamic segment routes 
this.resource(‘product’, { path: ‘/products/:title’ }); 
• Nested routes 
this.resource(‘products’, function() { 
this.resource(‘product’, { path: ‘/products/:title’ }); 
});
3. Templates 
• Contain HTML 
• Inside index.html 
• Uses Handlebars.js for templates 
• Part of your web application that people see 
• Subset of a View
3. Templates 
• Add template name: data-template-name=‘something’ 
• Add data to template using Handlebars Expressions: {{someThing}} 
• Load other templates into application template using: {{outlet}} 
• Embed links using: {{#link-to ‘something’}}Something{{/link-to}}
id or data-template-name? 
January 15, 2014
id or data-template-name? 
May 21, 2014
4. Controllers 
• In MVC, controller sends data from model to view 
• In Ember, controller sends data to template 
• ObjectController: sends info about 1 piece of data 
• ArrayController: sends info about all the data 
• Controllers can also format or ‘decorate’ data (on the client side)
Decorating Data 
Server side sort 
Client/browser side sort
5. Models 
• An Ember model is a class 
• Defines properties and behaviour of data presented to user 
• Ember model attributes are the data types 
• Define associations: has_many
Ember Data 
• Allows model to retrieve records from server, cache 
them, save updates back to server, create new 
records 
• Ember Data Adapter - HTTP server using JSON 
• Ember Data Adapter - load records from memory
6. Components 
• Similar to Web 
Components 
• Splits page into reusable 
components
Ember Inspector
Ember and Rails
http://richardgmartin.me 
@richardgmartin

More Related Content

What's hot

SPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePointSPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePointGreg Hurlman
 
Using JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPressUsing JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPressJohn Cook
 
Rails api + JS app
Rails api + JS appRails api + JS app
Rails api + JS appknomedia
 
Instagram filters (8 24)
Instagram filters (8 24)Instagram filters (8 24)
Instagram filters (8 24)Ivy Rueb
 
Building great spa’s with angular js, asp.net mvc and webapi
Building great spa’s with angular js, asp.net mvc and webapiBuilding great spa’s with angular js, asp.net mvc and webapi
Building great spa’s with angular js, asp.net mvc and webapiMaurice De Beijer [MVP]
 
MSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure FunctionsMSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure FunctionsMarc Obaldo
 
Design for scale
Design for scaleDesign for scale
Design for scaleDoug Lampe
 
Instagram filters (8 24)
Instagram filters (8 24)Instagram filters (8 24)
Instagram filters (8 24)Ivy Rueb
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples Yochay Kiriaty
 
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013Aaron Saunders
 
Ryan Brown - Open Community
Ryan Brown - Open CommunityRyan Brown - Open Community
Ryan Brown - Open CommunityServerlessConf
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfNCCOMMS
 
Automate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with AlexandriaAutomate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with AlexandriaJeffrey Kemp
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material designSrinadh Kanugala
 
Keep Calm And Serilog Elasticsearch Kibana on .NET Core
Keep Calm And Serilog Elasticsearch Kibana on .NET CoreKeep Calm And Serilog Elasticsearch Kibana on .NET Core
Keep Calm And Serilog Elasticsearch Kibana on .NET CoreMaciej Szymczyk
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure FunctionsChristos Matskas
 
Aws Loft Game Day
Aws Loft Game DayAws Loft Game Day
Aws Loft Game DayChinar Goel
 

What's hot (20)

ASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So FarASP.NET MVC - Latest & Greatest So Far
ASP.NET MVC - Latest & Greatest So Far
 
SPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePointSPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePoint
 
Using JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPressUsing JavaScript Libraries like D3.js with WordPress
Using JavaScript Libraries like D3.js with WordPress
 
Rails api + JS app
Rails api + JS appRails api + JS app
Rails api + JS app
 
Instagram filters (8 24)
Instagram filters (8 24)Instagram filters (8 24)
Instagram filters (8 24)
 
Building great spa’s with angular js, asp.net mvc and webapi
Building great spa’s with angular js, asp.net mvc and webapiBuilding great spa’s with angular js, asp.net mvc and webapi
Building great spa’s with angular js, asp.net mvc and webapi
 
MOKA .Net Study Week 02
MOKA .Net Study Week 02MOKA .Net Study Week 02
MOKA .Net Study Week 02
 
MSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure FunctionsMSDN Sessions 032817 - Azure Functions
MSDN Sessions 032817 - Azure Functions
 
Design for scale
Design for scaleDesign for scale
Design for scale
 
Instagram filters (8 24)
Instagram filters (8 24)Instagram filters (8 24)
Instagram filters (8 24)
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
 
Ryan Brown - Open Community
Ryan Brown - Open CommunityRyan Brown - Open Community
Ryan Brown - Open Community
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
 
ITT Flisol 2013
ITT Flisol 2013ITT Flisol 2013
ITT Flisol 2013
 
Automate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with AlexandriaAutomate Amazon S3 Storage with Alexandria
Automate Amazon S3 Storage with Alexandria
 
Phonegap android angualr material design
Phonegap android angualr material designPhonegap android angualr material design
Phonegap android angualr material design
 
Keep Calm And Serilog Elasticsearch Kibana on .NET Core
Keep Calm And Serilog Elasticsearch Kibana on .NET CoreKeep Calm And Serilog Elasticsearch Kibana on .NET Core
Keep Calm And Serilog Elasticsearch Kibana on .NET Core
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
 
Aws Loft Game Day
Aws Loft Game DayAws Loft Game Day
Aws Loft Game Day
 

Viewers also liked

Remote Proctor: Software Secure SACSCOC Conference 2013
Remote Proctor: Software Secure SACSCOC Conference 2013Remote Proctor: Software Secure SACSCOC Conference 2013
Remote Proctor: Software Secure SACSCOC Conference 2013Software Secure, Inc.
 
Internet marketing in the uk 7 things to look out for
Internet marketing in the uk 7 things to look out forInternet marketing in the uk 7 things to look out for
Internet marketing in the uk 7 things to look out fordenise2228
 
Social networking 2012
Social networking 2012Social networking 2012
Social networking 2012jrharshman
 
30 day challenge progress so far!
30 day challenge progress so far!30 day challenge progress so far!
30 day challenge progress so far!denise2228
 
Remote Proctor: Software Secure MSCHE 2013 Annual Conference Booth Presentation
Remote Proctor: Software Secure MSCHE 2013 Annual Conference Booth PresentationRemote Proctor: Software Secure MSCHE 2013 Annual Conference Booth Presentation
Remote Proctor: Software Secure MSCHE 2013 Annual Conference Booth PresentationSoftware Secure, Inc.
 
Cancer challenge among women presentation
Cancer challenge among women presentationCancer challenge among women presentation
Cancer challenge among women presentationApp Brahma
 
Nganhang cauhoithi-mangmaytinh-haiphongit dapan.com
Nganhang cauhoithi-mangmaytinh-haiphongit dapan.comNganhang cauhoithi-mangmaytinh-haiphongit dapan.com
Nganhang cauhoithi-mangmaytinh-haiphongit dapan.comLại Văn Đạo
 
Eurofi luxembourg forum (draft agenda) 9-11 septembre
Eurofi luxembourg forum (draft agenda) 9-11 septembreEurofi luxembourg forum (draft agenda) 9-11 septembre
Eurofi luxembourg forum (draft agenda) 9-11 septembreLuxemburger Wort
 
Google new webmaster guidelines october 2012
Google new webmaster guidelines october 2012Google new webmaster guidelines october 2012
Google new webmaster guidelines october 2012Mark Simon
 
Protect Academic Integrity in Online Exam Environments without Sacrificing St...
Protect Academic Integrity in Online Exam Environments without Sacrificing St...Protect Academic Integrity in Online Exam Environments without Sacrificing St...
Protect Academic Integrity in Online Exam Environments without Sacrificing St...Software Secure, Inc.
 
Remote Proctor: Software Secure Sloan-C 2013 Booth Presentation
Remote Proctor: Software Secure Sloan-C 2013 Booth PresentationRemote Proctor: Software Secure Sloan-C 2013 Booth Presentation
Remote Proctor: Software Secure Sloan-C 2013 Booth PresentationSoftware Secure, Inc.
 

Viewers also liked (20)

Igaa 1
Igaa 1Igaa 1
Igaa 1
 
Remote Proctor: Software Secure SACSCOC Conference 2013
Remote Proctor: Software Secure SACSCOC Conference 2013Remote Proctor: Software Secure SACSCOC Conference 2013
Remote Proctor: Software Secure SACSCOC Conference 2013
 
Ekmm
EkmmEkmm
Ekmm
 
Startup Compete
Startup CompeteStartup Compete
Startup Compete
 
Internet marketing in the uk 7 things to look out for
Internet marketing in the uk 7 things to look out forInternet marketing in the uk 7 things to look out for
Internet marketing in the uk 7 things to look out for
 
Social networking 2012
Social networking 2012Social networking 2012
Social networking 2012
 
30 day challenge progress so far!
30 day challenge progress so far!30 day challenge progress so far!
30 day challenge progress so far!
 
Remote Proctor: Software Secure MSCHE 2013 Annual Conference Booth Presentation
Remote Proctor: Software Secure MSCHE 2013 Annual Conference Booth PresentationRemote Proctor: Software Secure MSCHE 2013 Annual Conference Booth Presentation
Remote Proctor: Software Secure MSCHE 2013 Annual Conference Booth Presentation
 
Cancer challenge among women presentation
Cancer challenge among women presentationCancer challenge among women presentation
Cancer challenge among women presentation
 
Google forms
Google formsGoogle forms
Google forms
 
Nganhang cauhoithi-mangmaytinh-haiphongit dapan.com
Nganhang cauhoithi-mangmaytinh-haiphongit dapan.comNganhang cauhoithi-mangmaytinh-haiphongit dapan.com
Nganhang cauhoithi-mangmaytinh-haiphongit dapan.com
 
Avis delpéréesyfel
Avis delpéréesyfelAvis delpéréesyfel
Avis delpéréesyfel
 
Google forms
Google formsGoogle forms
Google forms
 
Eurofi luxembourg forum (draft agenda) 9-11 septembre
Eurofi luxembourg forum (draft agenda) 9-11 septembreEurofi luxembourg forum (draft agenda) 9-11 septembre
Eurofi luxembourg forum (draft agenda) 9-11 septembre
 
Course expectations
Course expectationsCourse expectations
Course expectations
 
Google new webmaster guidelines october 2012
Google new webmaster guidelines october 2012Google new webmaster guidelines october 2012
Google new webmaster guidelines october 2012
 
Cách làm bánh Matcha White Chocolate
Cách làm bánh Matcha White ChocolateCách làm bánh Matcha White Chocolate
Cách làm bánh Matcha White Chocolate
 
Protect Academic Integrity in Online Exam Environments without Sacrificing St...
Protect Academic Integrity in Online Exam Environments without Sacrificing St...Protect Academic Integrity in Online Exam Environments without Sacrificing St...
Protect Academic Integrity in Online Exam Environments without Sacrificing St...
 
Bộ sưu tập Sôcôla Valentine vô cùng độc đáo!
Bộ sưu tập Sôcôla Valentine vô cùng độc đáo!Bộ sưu tập Sôcôla Valentine vô cùng độc đáo!
Bộ sưu tập Sôcôla Valentine vô cùng độc đáo!
 
Remote Proctor: Software Secure Sloan-C 2013 Booth Presentation
Remote Proctor: Software Secure Sloan-C 2013 Booth PresentationRemote Proctor: Software Secure Sloan-C 2013 Booth Presentation
Remote Proctor: Software Secure Sloan-C 2013 Booth Presentation
 

Similar to Beginner's Guide to Ember.js Framework

Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design Allan Mangune
 
Riding the Edge with Ember.js
Riding the Edge with Ember.jsRiding the Edge with Ember.js
Riding the Edge with Ember.jsaortbals
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service BIOVIA
 
Mastering asp.net mvc - Dot Net Tricks
Mastering asp.net mvc - Dot Net TricksMastering asp.net mvc - Dot Net Tricks
Mastering asp.net mvc - Dot Net TricksGaurav Singh
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Dimitri de Putte
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architectureKevin Wenger
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxapidays
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basicskunal vishe
 
Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Hong Tat Yew
 
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupaldrupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupalrolf vreijdenberger
 
Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013Thomas Robbins
 
Ei cakephp
Ei cakephpEi cakephp
Ei cakephpeiei lay
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails introMat Schaffer
 
Portal and Intranets
Portal and Intranets Portal and Intranets
Portal and Intranets Redar Ismail
 

Similar to Beginner's Guide to Ember.js Framework (20)

Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
 
Software design with Domain-driven design
Software design with Domain-driven design Software design with Domain-driven design
Software design with Domain-driven design
 
Riding the Edge with Ember.js
Riding the Edge with Ember.jsRiding the Edge with Ember.js
Riding the Edge with Ember.js
 
Ember.js: Jump Start
Ember.js: Jump Start Ember.js: Jump Start
Ember.js: Jump Start
 
(ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service (ATS6-PLAT04) Query service
(ATS6-PLAT04) Query service
 
Mastering asp.net mvc - Dot Net Tricks
Mastering asp.net mvc - Dot Net TricksMastering asp.net mvc - Dot Net Tricks
Mastering asp.net mvc - Dot Net Tricks
 
Introduction to Monsoon PHP framework
Introduction to Monsoon PHP frameworkIntroduction to Monsoon PHP framework
Introduction to Monsoon PHP framework
 
Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012Backbonification for dummies - Arrrrug 10/1/2012
Backbonification for dummies - Arrrrug 10/1/2012
 
Headless cms architecture
Headless cms architectureHeadless cms architecture
Headless cms architecture
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
Design API using RAML - basics
Design API using RAML - basicsDesign API using RAML - basics
Design API using RAML - basics
 
Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)Introduction to cypress in Angular (Chinese)
Introduction to cypress in Angular (Chinese)
 
05 entity framework
05 entity framework05 entity framework
05 entity framework
 
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupaldrupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
 
Asp.Net MVC 5 in Arabic
Asp.Net MVC 5 in ArabicAsp.Net MVC 5 in Arabic
Asp.Net MVC 5 in Arabic
 
Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013Getting started with MVC 5 and Visual Studio 2013
Getting started with MVC 5 and Visual Studio 2013
 
Ei cakephp
Ei cakephpEi cakephp
Ei cakephp
 
Cakeph pppt
Cakeph ppptCakeph pppt
Cakeph pppt
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails intro
 
Portal and Intranets
Portal and Intranets Portal and Intranets
Portal and Intranets
 

Recently uploaded

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Recently uploaded (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

Beginner's Guide to Ember.js Framework

  • 1. A Beginner’s Guide to Ember.js By a Beginner for Beginners Richard Martin http://richardgmartin.me @richardgmartin http://richardgmartin.me/web-development/learn-ember
  • 2. About Product Marketer Online Marketer Company Founder Board Director Aspiring Developer
  • 3. Ember.js ‘A framework for creating ambitious web applications’
  • 4. Ember.js: What • Web application framework written in JavaScript • Initial release: 2011 • Current stable release: 1.8.1 (November 5, 2014) • Developers: Yehuda Katz and Tom Dale
  • 5. Ember.js: How • Single Page Application (SPA) • Sits on client side and connects to data via API • Renders using templates • Quick response and load times • Dynamic • discourse.org
  • 6. Ember.js: Why • Convention over configuration. Rail guards. Opinionated. Abstraction. • Little amount to code generates lot of complex code • MVC + R: familiar, maintainable, and scalable • Documentation • Community support
  • 7. Learning Ember.js • HTML • CSS Ember has a steep learning curve • JavaScript • jQuery • MVC • Objected oriented development
  • 8. Free Resources • Ember guides: routers, models, templates … • Ember API docs: functionality for all classes • Ember guide: Build a Ember.js application - blog • Vic Ramon’s Ember Tutorial - Rails + Ember • Ember Watch • Ember Fest • Ember Conf • Smashing Magazine • Blogs: EvilTrout, Cory Forsyth, Matthew Beale
  • 9. Paid Resources • Code School: Warming up to Ember • Lynda: Up and running with Ember • Team Gaslight: Introduction to Ember • Tuts+ • unspace.ca/embergarten • airpair
  • 10. Core Concepts 1.Router 2.Route 3.Templates 4.Controllers 5.Models 6.Components
  • 11. Extras • Ember Inspector • Ember Data • Ember CLI • Ember.View
  • 13. 1. Router • Handles all requests and maps a path into a route • Prebuilds a lot of code internally • ‘Convention over configuration’ starts here
  • 14. 2. Routes • A URL pointing to a specific section of web app • Provides data from external sources and passes to Ember Controller • Decides what model to use • Decides what template to render to screen
  • 15. Route Types • Routes (regular) - adjectives, verbs, adverbs this.route(‘onsale’); • Resource routes - nouns (a thing) this.resource(‘products’); • Dynamic segment routes this.resource(‘product’, { path: ‘/products/:title’ }); • Nested routes this.resource(‘products’, function() { this.resource(‘product’, { path: ‘/products/:title’ }); });
  • 16. 3. Templates • Contain HTML • Inside index.html • Uses Handlebars.js for templates • Part of your web application that people see • Subset of a View
  • 17. 3. Templates • Add template name: data-template-name=‘something’ • Add data to template using Handlebars Expressions: {{someThing}} • Load other templates into application template using: {{outlet}} • Embed links using: {{#link-to ‘something’}}Something{{/link-to}}
  • 18. id or data-template-name? January 15, 2014
  • 20. 4. Controllers • In MVC, controller sends data from model to view • In Ember, controller sends data to template • ObjectController: sends info about 1 piece of data • ArrayController: sends info about all the data • Controllers can also format or ‘decorate’ data (on the client side)
  • 21. Decorating Data Server side sort Client/browser side sort
  • 22. 5. Models • An Ember model is a class • Defines properties and behaviour of data presented to user • Ember model attributes are the data types • Define associations: has_many
  • 23. Ember Data • Allows model to retrieve records from server, cache them, save updates back to server, create new records • Ember Data Adapter - HTTP server using JSON • Ember Data Adapter - load records from memory
  • 24. 6. Components • Similar to Web Components • Splits page into reusable components
  • 27.