SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
AngularJS
HTML ENHANCED FOR WEB APPS
   -   Patrick Aljord / @patcito
What Is AngularJS Trying To Fix?
HTML is great for declarative code for static web page
<>el wrd<p
pHlo ol!/>


              Not so for dynamic pages:
< i=getn1>/>
 p d"reig"<p
 <cit
  srp>
   vriI =dcmn.tahvn;
   a sE    ouetatcEet
   vraditnr=iI
   a dLsee    sE
    ?fnto(,t f){
       ucine , n
       eatcEet'n +t f)}
        .tahvn(o'  , n;
    :fnto(,t f){
       ucine , n
       eadvnLsee(,f,fle;;
        .dEetitnrt n as)}
   aditnrdcmn,'od,fnto({
   dLsee(ouet la' ucin)
    vrgetn =dcmn.eEeetyd'reig';
     a reig   ouetgtlmnBI(getn1)
    i (sE {
     f iI)
      getn.neTx ='el Wrd'
       reiginret  Hlo ol!;
    }es {
       le
      getn.etotn ='el Wrd'
       reigtxCnet  Hlo ol!;
    }
   };
   )
 <srp>
  /cit
But...

                 = Imperative :-(

     Declarative FTW!
1.    <>el wrd/>
       pHlo ol<p



2.    <>{reig}/>
       p{Getn}<p
Data Binding
1.   Define a model
2.   Binds it to a template
3.   When you modify the model, templates updates automotically
4.   When the user intereacts with the UI, templates knows how
     to sync the data with the model.
Concrete Example: JQuery Vs AngularJS
<cittp=tx/aacit>
srp ye"etjvsrp"
 $fnto ( {
 (ucin )
  vrnm =$'nm'.a(;
  a ae   (#ae)vl)
  vrgetn =$'getn';
  a reig   (#reig)

    nm.eu(ucin( {
     aekypfnto )
      getn.et'el ' nm +'';
       reigtx(Hlo + ae !)
    })
  })
<srp>
 /cit
<i>
 dv
<ae>ae<lbl
 lblNm:/ae>
<nu tp=tx"i=nm"
 ipt ye"et d"ae>
< i=getn"<p
 p d"reig>/>
<dv
 /i>



               Name:   Enter a name here




                    HELLO
Concrete Example: JQuery Vs AngularJS
 <i n-p>
  dv gap
 <ae>ae<lbl
  lblNm:/ae>
 <nu tp=tx"n-oe=yuNm"
  ipt ye"et gmdl"orae>
 <>el {yuNm}!/>
  pHlo {orae}<p
 <dv
  /i>



           Name:   Enter a name here




             HELLO !
SO DATA BINDING ALLOWS CODE THAT IS
   1. very simple
   2. very recognizable
   3. looks like the original HTML hello world
                   Thanks To...
    1.   Dirty checking
    2.   Only checks the current view
    3.   Only check when change may happen
    4.   Leverage the JIT
    5.   But... the DOM is slow
DATA BINDING COMING TO A BROWSER NEAR
                  YOU
                      Implementation When?
AngularJS             Javascript      Now
Model Driven Views Native             Future
Object.observe        Native          Future
  There's already an AngularJS branch using Object.observe !
BUT HTML CAN BE
   VERBOSE!
↤ Beatiful widgets: Cool
      Tricking the browser: Not Cool ↧↧
  <lcas"a nvtb"i=mTb>
   u ls=nv a-as d"ya"
    <icas"cie>ahe=#eto1>eto 1/>/i
     l ls=atv"< rf"scin"Scin <a<l>
    <i< he=#rfl"Scin2/>/i
     l>a rf"poie>eto <a<l>
  <u>
   /l

  <i cas"a-otn"
   dv ls=tbcnet>
    <i cas"a-aeatv"i=scin"H,ImScin1/i
     dv ls=tbpn cie d"eto1>i ' eto <d
  v>
    <i cas"a-ae i=scin"H,ImScin2/i>
     dv ls=tbpn" d"eto2>i ' eto <dv
  <dv
   /i>

  <cit
   srp>
   $fnto ( {
    (ucin )
     $'mTbals'.a(so';
      (#ya :at)tb'hw)
   })
  <srp>
   /cit



Declarative reusable components:
             Cool ↧↧
 <as
 tb>
  <aette"eto 1>
   pn il=Scin "
   H,ImScin1
    i ' eto
  <pn>
   /ae
  <aette"eto 2>
   pn il=Scin "
   H,ImScin2
    i ' eto
  <pn>
   /ae
 <tb>
 /as
<google-map>
           <tabs>
          <tweet>
          <avatar>
        <color-picker>
          <invoice>

<unleash-your-imagination>
REUSABLE COMPONENTS COMING TO A
            BROWSER NEAR YOU
             Implementation When?
AngularJS    DOM+JS         Now
             (directives)
Web          Native         Near Future
Components
Mozilla shim for web components: x-tags.org
W3C specs:
http://www.w3.org/TR/2012/WD-components-intro-
20120522/#custom-element-section
THE WHOLE PACKAGE
       TO BUILD KICK ASS WEB APPS!
  ✓ Data binding
  ✓ Templating
  ✓ Routing and deep linking
  ✓ Testing
  ✓ Form validation
  ✓ Dependency injection
  ✓ MVW (Model/View/Whatever!)
angularjs scaffold
Checkout angularjs_scaffold if you're into Rails.
https://github.com/patcito/angularjs_scaffold
Thanks!
                   Patrick Aljord @patcito
                 http://blog.ricodigo.com
                 http://twitter.com/patcito
                 +Patrick Aljord




Credits for the slides: Vojta Jína, Miško Hevery, Igor Minar.
Introduction to AngularJS

Weitere ähnliche Inhalte

Was ist angesagt?

Universal JavaScript
Universal JavaScriptUniversal JavaScript
Universal JavaScript名辰 洪
 
Ellzey 5611 module 3
Ellzey 5611 module 3Ellzey 5611 module 3
Ellzey 5611 module 3cellzey
 
Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014Christian Grobmeier
 
Web APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existedWeb APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existedZeno Rocha
 
One page app with AngularJS
One page app with AngularJSOne page app with AngularJS
One page app with AngularJSAdam Štipák
 
Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)xSawyer
 
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호daumfoundation
 
10 Catalyst Tips
10 Catalyst Tips10 Catalyst Tips
10 Catalyst TipsJay Shirley
 
Any event intro
Any event introAny event intro
Any event introqiang
 
Document
DocumentDocument
Documentviwviw
 
Make WordPress realtime.
Make WordPress realtime.Make WordPress realtime.
Make WordPress realtime.Josh Hillier
 
Zen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst ApplicationsZen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst ApplicationsJay Shirley
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」Yasuharu Nakano
 

Was ist angesagt? (20)

Universal JavaScript
Universal JavaScriptUniversal JavaScript
Universal JavaScript
 
Ellzey 5611 module 3
Ellzey 5611 module 3Ellzey 5611 module 3
Ellzey 5611 module 3
 
Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014Go Mobile with Apache Cordova, Zagreb 2014
Go Mobile with Apache Cordova, Zagreb 2014
 
fabfile.py
fabfile.pyfabfile.py
fabfile.py
 
Web APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existedWeb APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existed
 
Postman On Steroids
Postman On SteroidsPostman On Steroids
Postman On Steroids
 
World of Logging
World of LoggingWorld of Logging
World of Logging
 
One page app with AngularJS
One page app with AngularJSOne page app with AngularJS
One page app with AngularJS
 
Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)Asynchronous Programming FTW! 2 (with AnyEvent)
Asynchronous Programming FTW! 2 (with AnyEvent)
 
Wso2 esb-rest-integration
Wso2 esb-rest-integrationWso2 esb-rest-integration
Wso2 esb-rest-integration
 
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
제5회인터넷리더십프로그램_왕초보를 위한 트위터 완벽 활용_정진호
 
10 Catalyst Tips
10 Catalyst Tips10 Catalyst Tips
10 Catalyst Tips
 
Any event intro
Any event introAny event intro
Any event intro
 
Document
DocumentDocument
Document
 
Make WordPress realtime.
Make WordPress realtime.Make WordPress realtime.
Make WordPress realtime.
 
Zen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst ApplicationsZen: Building Maintainable Catalyst Applications
Zen: Building Maintainable Catalyst Applications
 
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
レッツゴーデベロッパー2011「プログラミングGroovy〜G*エコシステム編」
 
Islam House
Islam HouseIslam House
Islam House
 
jQuery
jQueryjQuery
jQuery
 
You promise?
You promise?You promise?
You promise?
 

Andere mochten auch

Presentation sanlab workshops
Presentation sanlab workshopsPresentation sanlab workshops
Presentation sanlab workshopsArtur Roszczyk
 
JWEF Singapore - Building a company for fun, by Keith Ng, Gametize
JWEF Singapore - Building a company for fun, by Keith Ng, GametizeJWEF Singapore - Building a company for fun, by Keith Ng, Gametize
JWEF Singapore - Building a company for fun, by Keith Ng, GametizeKeith Ng (@keizng)
 
Our teaser trailer idea final
Our teaser trailer idea finalOur teaser trailer idea final
Our teaser trailer idea finalamylewissimon1
 
Trailer analysis toy story 3
Trailer analysis   toy story 3Trailer analysis   toy story 3
Trailer analysis toy story 3Fordyy
 
Our teaser trailer idea final
Our teaser trailer idea finalOur teaser trailer idea final
Our teaser trailer idea finalamylewissimon1
 
Event management software market teaser
Event management software market teaserEvent management software market teaser
Event management software market teasersukiennong.vn
 
Corporate events presentation
Corporate events presentationCorporate events presentation
Corporate events presentationglobedu
 
Corporate events ppt
Corporate events pptCorporate events ppt
Corporate events pptTheBSIIndia
 
Content Marketing for Events
Content Marketing for EventsContent Marketing for Events
Content Marketing for EventsJoe Pulizzi
 
Event planning powerpoint
Event planning powerpointEvent planning powerpoint
Event planning powerpointkatelandturner
 

Andere mochten auch (15)

Presentation sanlab workshops
Presentation sanlab workshopsPresentation sanlab workshops
Presentation sanlab workshops
 
JWEF Singapore - Building a company for fun, by Keith Ng, Gametize
JWEF Singapore - Building a company for fun, by Keith Ng, GametizeJWEF Singapore - Building a company for fun, by Keith Ng, Gametize
JWEF Singapore - Building a company for fun, by Keith Ng, Gametize
 
Fun day
Fun dayFun day
Fun day
 
Our teaser trailer idea final
Our teaser trailer idea finalOur teaser trailer idea final
Our teaser trailer idea final
 
Trailer analysis toy story 3
Trailer analysis   toy story 3Trailer analysis   toy story 3
Trailer analysis toy story 3
 
Our teaser trailer idea final
Our teaser trailer idea finalOur teaser trailer idea final
Our teaser trailer idea final
 
Team Building Company Brochure 2011
Team Building Company Brochure 2011Team Building Company Brochure 2011
Team Building Company Brochure 2011
 
Event management software market teaser
Event management software market teaserEvent management software market teaser
Event management software market teaser
 
Corporate events presentation
Corporate events presentationCorporate events presentation
Corporate events presentation
 
Corporate events ppt
Corporate events pptCorporate events ppt
Corporate events ppt
 
Events Marketing
Events MarketingEvents Marketing
Events Marketing
 
Gapingvoid: How To Supercharge Your Event
Gapingvoid: How To Supercharge Your EventGapingvoid: How To Supercharge Your Event
Gapingvoid: How To Supercharge Your Event
 
Content Marketing for Events
Content Marketing for EventsContent Marketing for Events
Content Marketing for Events
 
Event planning powerpoint
Event planning powerpointEvent planning powerpoint
Event planning powerpoint
 
Fun Is Good Ppt
Fun Is  Good PptFun Is  Good Ppt
Fun Is Good Ppt
 

Ähnlich wie Introduction to AngularJS

Angular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental FeatureAngular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental FeatureJonathan Magen
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersTodd Anglin
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsMike Pack
 
Five Pound App talk: hereit.is, Web app architecture, REST, CSS3
Five Pound App talk: hereit.is, Web app architecture, REST, CSS3Five Pound App talk: hereit.is, Web app architecture, REST, CSS3
Five Pound App talk: hereit.is, Web app architecture, REST, CSS3Jamie Matthews
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youPatrick Meenan
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkDaniel Spector
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)Igor Bronovskyy
 
Charlie Gerard- Mind Control in Javascript (Evolution)
Charlie Gerard- Mind Control in Javascript (Evolution)Charlie Gerard- Mind Control in Javascript (Evolution)
Charlie Gerard- Mind Control in Javascript (Evolution)Thoughtworks
 
jQuery Internals + Cool Stuff
jQuery Internals + Cool StuffjQuery Internals + Cool Stuff
jQuery Internals + Cool Stuffjeresig
 
The State of PHPUnit
The State of PHPUnitThe State of PHPUnit
The State of PHPUnitEdorian
 
Liberating web apps from the server
Liberating web apps from the serverLiberating web apps from the server
Liberating web apps from the serverAlexander Gyoshev
 
The Peanut Butter Cup of Web-dev: Plack and single page web apps
The Peanut Butter Cup of Web-dev: Plack and single page web appsThe Peanut Butter Cup of Web-dev: Plack and single page web apps
The Peanut Butter Cup of Web-dev: Plack and single page web appsJohn Anderson
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and PythonPiXeL16
 
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!François-Guillaume Ribreau
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patternsStoyan Stefanov
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hopeMarcus Ramberg
 
Web performance essentials - Goodies
Web performance essentials - GoodiesWeb performance essentials - Goodies
Web performance essentials - GoodiesJerry Emmanuel
 

Ähnlich wie Introduction to AngularJS (20)

Angular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental FeatureAngular.js + Rails at WeWork or: The Accidental Feature
Angular.js + Rails at WeWork or: The Accidental Feature
 
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET DevelopersAccelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
Accelerated Adoption: HTML5 and CSS3 for ASP.NET Developers
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion Dollars
 
Five Pound App talk: hereit.is, Web app architecture, REST, CSS3
Five Pound App talk: hereit.is, Web app architecture, REST, CSS3Five Pound App talk: hereit.is, Web app architecture, REST, CSS3
Five Pound App talk: hereit.is, Web app architecture, REST, CSS3
 
Velocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and youVelocity EU 2012 - Third party scripts and you
Velocity EU 2012 - Third party scripts and you
 
Crossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end FrameworkCrossing the Bridge: Connecting Rails and your Front-end Framework
Crossing the Bridge: Connecting Rails and your Front-end Framework
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Charlie Gerard- Mind Control in Javascript (Evolution)
Charlie Gerard- Mind Control in Javascript (Evolution)Charlie Gerard- Mind Control in Javascript (Evolution)
Charlie Gerard- Mind Control in Javascript (Evolution)
 
前端概述
前端概述前端概述
前端概述
 
jQuery Internals + Cool Stuff
jQuery Internals + Cool StuffjQuery Internals + Cool Stuff
jQuery Internals + Cool Stuff
 
The State of PHPUnit
The State of PHPUnitThe State of PHPUnit
The State of PHPUnit
 
Frontin like-a-backer
Frontin like-a-backerFrontin like-a-backer
Frontin like-a-backer
 
Liberating web apps from the server
Liberating web apps from the serverLiberating web apps from the server
Liberating web apps from the server
 
The Peanut Butter Cup of Web-dev: Plack and single page web apps
The Peanut Butter Cup of Web-dev: Plack and single page web appsThe Peanut Butter Cup of Web-dev: Plack and single page web apps
The Peanut Butter Cup of Web-dev: Plack and single page web apps
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
 
He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!He stopped using for/while loops, you won't believe what happened next!
He stopped using for/while loops, you won't believe what happened next!
 
JavaScript performance patterns
JavaScript performance patternsJavaScript performance patterns
JavaScript performance patterns
 
Starting out with Ember.js
Starting out with Ember.jsStarting out with Ember.js
Starting out with Ember.js
 
Mojolicious - A new hope
Mojolicious - A new hopeMojolicious - A new hope
Mojolicious - A new hope
 
Web performance essentials - Goodies
Web performance essentials - GoodiesWeb performance essentials - Goodies
Web performance essentials - Goodies
 

Introduction to AngularJS

  • 1. AngularJS HTML ENHANCED FOR WEB APPS - Patrick Aljord / @patcito
  • 2. What Is AngularJS Trying To Fix? HTML is great for declarative code for static web page <>el wrd<p pHlo ol!/> Not so for dynamic pages: < i=getn1>/> p d"reig"<p <cit srp> vriI =dcmn.tahvn; a sE ouetatcEet vraditnr=iI a dLsee sE ?fnto(,t f){ ucine , n eatcEet'n +t f)} .tahvn(o' , n; :fnto(,t f){ ucine , n eadvnLsee(,f,fle;; .dEetitnrt n as)} aditnrdcmn,'od,fnto({ dLsee(ouet la' ucin) vrgetn =dcmn.eEeetyd'reig'; a reig ouetgtlmnBI(getn1) i (sE { f iI) getn.neTx ='el Wrd' reiginret Hlo ol!; }es { le getn.etotn ='el Wrd' reigtxCnet Hlo ol!; } }; ) <srp> /cit
  • 3. But... = Imperative :-( Declarative FTW! 1. <>el wrd/> pHlo ol<p 2. <>{reig}/> p{Getn}<p
  • 4. Data Binding 1. Define a model 2. Binds it to a template 3. When you modify the model, templates updates automotically 4. When the user intereacts with the UI, templates knows how to sync the data with the model.
  • 5. Concrete Example: JQuery Vs AngularJS <cittp=tx/aacit> srp ye"etjvsrp" $fnto ( { (ucin ) vrnm =$'nm'.a(; a ae (#ae)vl) vrgetn =$'getn'; a reig (#reig) nm.eu(ucin( { aekypfnto ) getn.et'el ' nm +''; reigtx(Hlo + ae !) }) }) <srp> /cit <i> dv <ae>ae<lbl lblNm:/ae> <nu tp=tx"i=nm" ipt ye"et d"ae> < i=getn"<p p d"reig>/> <dv /i> Name: Enter a name here HELLO
  • 6. Concrete Example: JQuery Vs AngularJS <i n-p> dv gap <ae>ae<lbl lblNm:/ae> <nu tp=tx"n-oe=yuNm" ipt ye"et gmdl"orae> <>el {yuNm}!/> pHlo {orae}<p <dv /i> Name: Enter a name here HELLO !
  • 7. SO DATA BINDING ALLOWS CODE THAT IS 1. very simple 2. very recognizable 3. looks like the original HTML hello world Thanks To... 1. Dirty checking 2. Only checks the current view 3. Only check when change may happen 4. Leverage the JIT 5. But... the DOM is slow
  • 8. DATA BINDING COMING TO A BROWSER NEAR YOU Implementation When? AngularJS Javascript Now Model Driven Views Native Future Object.observe Native Future There's already an AngularJS branch using Object.observe !
  • 9. BUT HTML CAN BE VERBOSE!
  • 10. ↤ Beatiful widgets: Cool Tricking the browser: Not Cool ↧↧ <lcas"a nvtb"i=mTb> u ls=nv a-as d"ya" <icas"cie>ahe=#eto1>eto 1/>/i l ls=atv"< rf"scin"Scin <a<l> <i< he=#rfl"Scin2/>/i l>a rf"poie>eto <a<l> <u> /l <i cas"a-otn" dv ls=tbcnet> <i cas"a-aeatv"i=scin"H,ImScin1/i dv ls=tbpn cie d"eto1>i ' eto <d v> <i cas"a-ae i=scin"H,ImScin2/i> dv ls=tbpn" d"eto2>i ' eto <dv <dv /i> <cit srp> $fnto ( { (ucin ) $'mTbals'.a(so'; (#ya :at)tb'hw) }) <srp> /cit Declarative reusable components: Cool ↧↧ <as tb> <aette"eto 1> pn il=Scin " H,ImScin1 i ' eto <pn> /ae <aette"eto 2> pn il=Scin " H,ImScin2 i ' eto <pn> /ae <tb> /as
  • 11. <google-map> <tabs> <tweet> <avatar> <color-picker> <invoice> <unleash-your-imagination>
  • 12. REUSABLE COMPONENTS COMING TO A BROWSER NEAR YOU Implementation When? AngularJS DOM+JS Now (directives) Web Native Near Future Components
  • 13. Mozilla shim for web components: x-tags.org W3C specs: http://www.w3.org/TR/2012/WD-components-intro- 20120522/#custom-element-section
  • 14. THE WHOLE PACKAGE TO BUILD KICK ASS WEB APPS! ✓ Data binding ✓ Templating ✓ Routing and deep linking ✓ Testing ✓ Form validation ✓ Dependency injection ✓ MVW (Model/View/Whatever!)
  • 15.
  • 16. angularjs scaffold Checkout angularjs_scaffold if you're into Rails. https://github.com/patcito/angularjs_scaffold
  • 17. Thanks! Patrick Aljord @patcito http://blog.ricodigo.com http://twitter.com/patcito +Patrick Aljord Credits for the slides: Vojta Jína, Miško Hevery, Igor Minar.