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
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
無理せず続ける、子育てエンジニアの学び
codmoninc
PRO
0
530
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
550
生成AIと進める探索的データ分析(2026.10.03 第122回Tokyo.R勉強会)
tatamiya
2
1.5k
OSC2026on_the-world-is-waiting-for-your-voice.pdf
naruoga
0
360
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
340
AI駆動開発の時代になったのでトヨタ生産方式から見直す
terurou
6
5.5k
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
160
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
580
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
290
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
170
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
0
210
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
650
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
450
A Tale of Four Properties
chriscoyier
163
24k
Deep Space Network (abreviated)
tonyrice
0
360
The untapped power of vector embeddings
frankvandijk
2
1.9k
Evolving SEO for Evolving Search Engines
ryanjones
0
310
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
350
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
550
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
ラッコキーワード サービス紹介資料
rakko
1
5.2M
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