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
Umbraco Festival 2013 - Introduction to AngularJS
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Pete Bacon Darwin
November 08, 2013
Technology
240
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Umbraco Festival 2013 - Introduction to AngularJS
Pete Bacon Darwin
November 08, 2013
More Decks by Pete Bacon Darwin
See All by Pete Bacon Darwin
Devox UK 2013 - AngularJS
petebd
2
1.6k
Directives_Presentation.pdf
petebd
5
340
Other Decks in Technology
See All in Technology
SREへの勘違いに気づいた後の話
tomodakengo
0
110
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
5
640
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
140
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
160
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
3
1.7k
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
750
おい、エージェントを使って終わらせろ
nwiizo
1
670
新機種発売前に見直そう!端末移行で再ログインが要るアプリ・要らないアプリは何が違うのか 〜シームレスに再開できる設計と実装〜
zozotech
PRO
0
210
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
0
130
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
180
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
6
3k
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
cscengineer
PRO
0
110
Featured
See All Featured
The browser strikes back
jonoalderson
0
1.7k
Embracing the Ebb and Flow
colly
88
5.2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
Into the Great Unknown - MozCon
thekraken
41
2.7k
A better future with KSS
kneath
240
18k
Rails Girls Zürich Keynote
gr2m
96
14k
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
500
Designing Experiences People Love
moore
143
24k
Ethics towards AI in product and experience design
skipperchong
2
380
Prompt Engineering for Job Search
mfonobong
0
450
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Transcript
Awesome What’s all the fuss?
Pete Bacon Darwin • Computer Programmer / Dad • .NET
◦ ex-IT Consultant (Avanade / IMGROUP) ◦ Some Umbraco 4(!) • AngularJS ◦ Google Team Member ◦ Book Author ◦ AngularUI Founder Member
Jubilant JavaScript
Awesome AngularJS “What the browser would have been if it
had been created for web apps.”
Wonderful Websites http://angularjs.org http://docs.angularjs.org http://code.angularjs.org http://github.com/angular/angular.js http://stackoverflow.com/questions/tagged/angularjs
Tremendous Trending
Dynamic Data-Binding Manageable Models <input ng-model=“myName”> Creative Curlies & Fashionable
Filters {{ myBalance | currency : 2 }}
Delightful Directives Reliable Repeaters <ul> <li ng-repeat=”item in list”> {{item.name}}
</li> </ul>
Delightful Directives Essential Events <button ng-click=”makeTea()”> <div ng-keypress=”buyCatFood()”> <textarea ng-blur=”saveTheWorld()”>
Delightful Directives Vivid visuals <div ng-show=”nameCtrl.$error”>Error!!</div> <li ng-class=”{active: item.id==activeId}”> {{item.title}}
</li>
Sophisticated Structure Angular does MV-Whatever!
Sublime Scopes The glue between the Model and the View
• Every HTML element has a Scope • Views access Scope properties and methods • Scopes provide data-binding between the View and the Model
Cultured Controllers Initialize the scope with data and logic (Code
Behind) <div ng-controller=”FriendController”> <ul> <li ng-repeat=”friend in friends”> {{ friend.name }} <button ng-click=” removeFriend(friend)”>X</button> </li> </ul> <input ng-model=”newFriend”> <button ng-click=” addFriend(newFriend)”>Add</button> </div>
Constructive Controllers Controllers are just JavaScript functions appModule.controller(‘FriendController’, function($scope) {
$scope.friends = [...]; $scope.addFriend = function(newFriend) {...}; $scope.removeFriend = function(friend) {...}; });
Intelligent Injection AngularJS Injects Dependencies appModule .controller(‘ComplexController’, function($scope, $http, $timeout,
$log) { ... } );
Superb Services Services are Injectable Singleton Objects • $http: Make
an AJAX request • $log: Log to the console • $timeout: Do something later • $location: Work with the browser address
Tremendous Testability AngularJS Does Testing! • Separation of Concerns ◦
Controllers and Services can be tested independently ◦ Views are declarative • Dependency Injection ◦ Dependencies can be mocked • Testing Tools
Joyful Jasmine Behaviour Driven Development (BDD) ... ish describe ‘FriendController’,
-> beforeEach -> ... it ‘should add 3 friends to scope’, -> expect($scope.friends.length).toBe 3 afterEach -> ...
Kindhearted Karma Karma Runs Your Unit Tests in Browsers https://github.com/karma-runner/karma
karma start test-config.js --browsers=Chrome
Powerful Protractor End to End Functional Testing for AngularJS https://github.com/angular/protractor
• Protractor -> WebDriverJS -> Selenium • Simulate Interaction with your Web App
Buy The Book Packed with real solutions to real problems!
http://www.packtpub.com/angularjs-web-application-development/book