SlideShare a Scribd company logo
1 of 53
Download to read offline
TechTalk | 3 February 2014
Spyros Ioakeimidis
AngularJS

❖

Seemed a bit weird in the beginning

❖

All these new terms and concepts…

!2
Modul
es

Depen
dency
Injecti
on
Provid

ws
Vie

ers
Promi
ses
Servic

es

Mo

s
er
ilt

F

els
d
cto
Fa

Contro

ies
r

Direct
ives

llers

!3
AngularJS
❖

Made for SPA (Single Page Applications)

❖

It has a learning curve!

❖

Maintained by Google (for some this is good, for
others not)

❖

Community keeps increasing

!4
AngularJS
❖

MVC principle

❖

Others say it is an SPA framework

❖

Others that it is just a library to help you built a
framework

❖

AngularJS is a toolset (extensibility)

!5
!6
Modules

!7
Modules
❖

app = angular.module(‘myApp’, [])
❖
❖

It is required when creating a new module
(module declaration)

❖

❖

Use of an array to include other modules

app = angular.module(‘myApp’) retrieves
an existing module (module reference)

Modules cannot be included at runtime
!8
Modules
❖

We have a module app
❖

.value()
❖

❖

global values, good for defaults

.constant()
❖

same as Value, but the it is expected to not change

❖

.service()

❖

.factory()

❖

.provider()
!9
MVC

(or whatever…)

!10
W(M)VC
❖

Whatever (Model)
❖
❖

❖

It is the $scope, which contains models and functions as well
e.g. $scope.event = {‘title’: ‘Placed Event’}

View
❖

❖

HTML markup

Controller
❖

An JS object

❖

app.controller(‘MyController’, function{})

❖

DOM manipulation does not belong to controllers
!11
Whatever
(Data)
stored in $scope of

contains

View
(HTML)

communicates with

Controller
(Business Logic)

provides
functionality

Hiller, Christopher. “Developing an AngularJS Edge.”
!12

Directive
(DSL in HTML)
provides functionality

Service
(Library)
Scope.models

!13
Scope
❖

prototypical inheritance

❖

treat scope as read-only in templates

❖

when binding to templates ng-model=“user.name”, always
use a dot

❖

$rootScope

❖

$scope.$apply()
❖

$eval() -> $exceptionHandler(e) -> $digest()

❖

e.g. when observing DOM elements directly in directives
!14
Scope
❖

$scope.$watch(‘foo’, function() {})
❖

observe a model for changes, evaluates by reference

❖

will fire when $scope.foo = ‘’ and then $scope.foo =
‘bar’

❖

but not when $scope.foo.bar = ‘’ and then
$scope.foo.bar = ‘baz’

❖

can evaluate by value (expensive operation!)

❖

when writing own $watch, it must be fast and it must be
idempotent
!15
Scope
❖

$scope.$digest()

❖

$scope.$eval()

❖

$scope.{$on, $broadcast, $emit}

!16
$emit(‘eventB’, …)

$emit(‘eventC’, …)

Controller A

$emit(‘eventB’, …)

$on(‘eventA’, …)
$rootScope.$on(‘eventC’, …)

$on(‘eventB’, …)
$on(‘eventC’, …)

$broadcast(‘eventA’, …)

Controller B

Controller C

$broadcast(‘eventA’, …)

!17

$emit(‘eventC’, …)

$on(‘eventA’, …)
Model
❖

Scope is not the model!

❖

$scope.foo, where the foo is the model

❖

data-binding, <p>{{foo.bar}}</p>
❖

a portion of view is bind to a model

❖

when either one changes, they are both
synchronized
!18
View

!19
View
❖

presentation logic

❖

does not know anything about the controller, nor
the controller about it

❖

everything goes through the Scope

❖

integrates with models, directives, filters

!20
View
❖

ng-repeat

❖

this would not work




<div ng-repeat=“number in [1, 2, 3]”>

<input type=“text” ng-model=“number” />

</div>



but this would work




<div ng-repeat=“number in [{n: 1}, {n: 2}, {n: 3}]”>

<input type=“text” ng-model="number.n"/>

</div>
❖

$index, $first, $middle, $last, $event, $parent

❖

ng-click, ng-show, ng-model, ng-change, ng-href …
!21
View
❖

orderBy, filter

❖

<div id=“{{post.id}}”

ng-repeat=“post in posts|

orderBy:order:descending|

filter:filter”>

</div>

❖

in Controller

$scope.order = ‘date’

$scope.descending = true

❖

and filter would come from an text box

❖

ngClassEvent, ngClassOdd
!22
View
❖

compilation for templates and markup is done in
two steps
Step 1: compile

Step 2: link

var linker = $compile(template)

var compiled = linker(scope)

1) template examined for directives
1) scope into the link function of its directive
2) AngularJS collects them and 

2) get back AngularJS element representing

produces a link function
the DOM fragment
* no data has been inserted in the template
$compile(template)(scope)
!23
Controller

!24
Controller
❖

they are for the business logic

❖

they are not meant to interact with the DOM

❖

services can be injected to share common
functionality with other controllers

!25
Dependency Injection
❖

A nice way to create modular applications

❖

it is magic (but not really…)
❖

Angular converts functions to strings .toString()

❖

runs string matching against them

❖

determines from the name of the parameter what
you want to inject


!26
Directives

!27
Directives
❖

Create your own DSL

❖

A nice way to include logic in the views

❖

this is where DOM manipulation should happen!

❖

Can have an isolated scope

❖

Defines a linking function
❖

❖
❖

is passed a Scope object, an element, and the element’s attributes
(optionally a controller inst.)
where the logic goes

Need a scope, use link. Don’t? Use compile.
!28
Directives
HTML with
HTML with
HTML with
directives
directives
directives

examines

<my-directive>

finds

compile()

returns

Scope
object

link
(scope)

Hiller, Christopher. “Developing an AngularJS Edge.”
!29

returns

Compiled
template with
data
Directives
app.directive(‘new-event’, function() {

return {

restrict: ‘E’,

scope: {

event: ‘=’,

linked to the parent scope
save: ‘=’,

cancel: ‘=’,

saveText: ‘@’,

copied verbatim
cancelText: ‘@’

},

replace: true,

template: 

‘<div ng-show="event">' +

‘<input type=“text” ng-model=“event.temp.title”/><br/>’ +

‘<input type=“text” ng-model=“event.temp.subtitle”></../>’ +

‘<button ng-click=“cancel(event)”>{{cancelText}}</button>’ +

‘<button ng-click=“save(event)”>{{saveText}}</button></div>’

};

});

}

}

!30
Directives
<new-event

event=“event”

cancel=“cancel”

save=“save”

cancel-text=“Cancel”

save-text=“Save”>

</new-event>

!31

linked to the parent scope

copied verbatim
Directives
app.directive(‘event-info', function() {

return {

restrict: ‘E’,

replace: true,

templateUrl: ‘views/eventInfo.html’

transclude: true,

scope: {

startDate: ‘=’,
endDate: ‘=’

},

link: function(scope, element) {
infoButton = element.children()[0].children[0].children[0]

scope.open = false;

angular.element(infoButton).bind(‘click’, function() {

scope.$apply(‘open = !open’);

});

};

};

});
!32
Directives
<div class="event-info">

<div class="event-info-content">

<div class="event-title" ng-transclude>

<span class=“addtional-info-button”>More...</span>

</div>

<div class="additional-info>" ng-show="open">

<div class=“event-start">{{startDate}}</div>

<div class="event-end">{{endDate}}</div>

</div>

</div>

</div>

We could call it like:
<event-info start-date=“event.event_start" end-date="event.event_end">

{{event.title.en}}

</event-info>

!33
Directives
❖

‘=foo’ links directly to parent scope

❖

‘@foo’ assigns an attribute to whatever the key is

❖

‘&foo’ binds expression and executes it against the parent
scope
❖
❖

<my-directive on-close=“hide()”></my-directive>

❖
❖

in directive definition: scope: {‘close’: ‘&onClose’}

in directive’s template: ng-click=“close()”

There are also ‘A’, ‘AE’, ‘C’, and ‘M’ restrict options
!34
Directives
❖

write reusable and generic directives

❖

the less reusable (involving scopes) the less
maintainable they become

❖

write directives with isolated scopes!

❖

share functionality between directives using a
controller

❖

long learning curve, but powerful!
!35
Service | Factory | Provider

!36
Service | Factory | Provider
❖

the backbone of the an AngularJS app

❖

keep the controller from thinking too hard

❖

… and directives have only one function, make it
readable and testable (inject services)

!37
Service | Factory | Provider
Needs a $get Explicitly returns Present during
Component Instantiated
method
something
$config()

Service

Yes

No

No

No

Factory

No

No

Yes

No

Provider

Yes

Yes

No

Yes

Hiller, Christopher. “Developing an AngularJS Edge.”
!38
Service
❖

it is a singleton, instantiated the first time is
requested

❖

requires less memory and processing power than
the others

!39
Promises
EventsCtrl
(Controller)
1) Calls getEvents()

Promise
3) Returns a
Promise

Events
(Service)

!40

Server
2) Asks Server
for a list of Events
Promises
4) Returns a list
of events

Server

Events
(Service)
5) Promise resolved
with events data

EventsCtrl
(Controller)

Promise
6) Takes action with
data received from
resolved promise

!41
Factory

❖

it can return a function, object, or primitive

❖

useful for utils

!42
Provider
❖

can be configured during initialization

❖

$http is also a provider
injects

config()

$httpProvider

injects

run()

$http

!43
Provider
Configure with Plugin B in
Module.config()

Plugin A
DialogProvider
Plugin B

Dialog
Uses plugin B at runtime

Hiller, Christopher. “Developing an AngularJS Edge.”
!44
Filters

!45
Filters
❖

execute logic against models only the view cares about

❖

app.filter(‘product’, function() {

return function(a, b, c) {

return a * b * c;

};

});

❖

can be used like:




<span>the product is {{a|product:b:c}}</span>
❖

executed often, so keep them simple

❖

they should not have side-effects
!46
More…
❖

History

❖

Routing

❖

Compiler

❖

Injector

❖

Template

!47
Testing (intro)
❖

Jasmine (behavior-driven testing)

❖

aware of asynchronous events

❖

take advantage of binding information

❖

excellent mock objects ($log)

!48
ng-modules
❖

http://ngmodules.org/, currently 440 modules (++)

❖

angular-ui, bootstrap, ui-router

❖

restangular

❖

angular-translate

❖

angular-cache

❖

…
!49
built.with.angularjs
❖

http://builtwith.angularjs.org/

❖

http://www.google.com/doubleclick/

Create, transact, and manage digital advertising

❖

http://demo.songpane.com/

Form song set lists (songs, lyrics, chords)

❖

http://www.zaptravel.com/

Deals for experiences of interest

❖

http://hat.jit.su/

Distributed scrum planning poker

❖

…
!50
References
❖

Hiller, Christopher. “Developing an AngularJS
Edge.”

❖

Mastering Web Application Development with
AngularJS

❖

Ari Lerner “ng-book - The Complete Book on
AngularJS”

!51
AAAAngularosum!

More Related Content

What's hot

AngularJS Project Setup step-by- step guide - RapidValue Solutions
AngularJS Project Setup step-by- step guide - RapidValue SolutionsAngularJS Project Setup step-by- step guide - RapidValue Solutions
AngularJS Project Setup step-by- step guide - RapidValue SolutionsRapidValue
 
Workshop 24: React Native Introduction
Workshop 24: React Native IntroductionWorkshop 24: React Native Introduction
Workshop 24: React Native IntroductionVisual Engineering
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJSGregor Woiwode
 
Exploring Angular 2 - Episode 2
Exploring Angular 2 - Episode 2Exploring Angular 2 - Episode 2
Exploring Angular 2 - Episode 2Ahmed Moawad
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkCodemotion
 
Angular2 Development for Java developers
Angular2 Development for Java developersAngular2 Development for Java developers
Angular2 Development for Java developersYakov Fain
 
AngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UXAngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UXJWORKS powered by Ordina
 
Exploring Angular 2 - Episode 1
Exploring Angular 2 - Episode 1Exploring Angular 2 - Episode 1
Exploring Angular 2 - Episode 1Ahmed Moawad
 
Data Flow Patterns in Angular 2 - Sebastian Müller
Data Flow Patterns in Angular 2 -  Sebastian MüllerData Flow Patterns in Angular 2 -  Sebastian Müller
Data Flow Patterns in Angular 2 - Sebastian MüllerSebastian Holstein
 
Single Page Applications with AngularJS 2.0
Single Page Applications with AngularJS 2.0 Single Page Applications with AngularJS 2.0
Single Page Applications with AngularJS 2.0 Sumanth Chinthagunta
 
Dart for Java Developers
Dart for Java DevelopersDart for Java Developers
Dart for Java DevelopersYakov Fain
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorialRohit Gupta
 
The road to Ember.js 2.0
The road to Ember.js 2.0The road to Ember.js 2.0
The road to Ember.js 2.0Codemotion
 
Workshop 25: React Native - Components
Workshop 25: React Native - ComponentsWorkshop 25: React Native - Components
Workshop 25: React Native - ComponentsVisual Engineering
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training Patrick Schroeder
 

What's hot (20)

AngularJS Project Setup step-by- step guide - RapidValue Solutions
AngularJS Project Setup step-by- step guide - RapidValue SolutionsAngularJS Project Setup step-by- step guide - RapidValue Solutions
AngularJS Project Setup step-by- step guide - RapidValue Solutions
 
Angular modules in depth
Angular modules in depthAngular modules in depth
Angular modules in depth
 
Workshop 24: React Native Introduction
Workshop 24: React Native IntroductionWorkshop 24: React Native Introduction
Workshop 24: React Native Introduction
 
A gently introduction to AngularJS
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
 
Angular2 + rxjs
Angular2 + rxjsAngular2 + rxjs
Angular2 + rxjs
 
Angular2 for Beginners
Angular2 for BeginnersAngular2 for Beginners
Angular2 for Beginners
 
Exploring Angular 2 - Episode 2
Exploring Angular 2 - Episode 2Exploring Angular 2 - Episode 2
Exploring Angular 2 - Episode 2
 
Tech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new frameworkTech Webinar: Angular 2, Introduction to a new framework
Tech Webinar: Angular 2, Introduction to a new framework
 
Angular js
Angular jsAngular js
Angular js
 
Angular2 Development for Java developers
Angular2 Development for Java developersAngular2 Development for Java developers
Angular2 Development for Java developers
 
AngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UXAngularJS Basics and Best Practices - CC FE &UX
AngularJS Basics and Best Practices - CC FE &UX
 
Exploring Angular 2 - Episode 1
Exploring Angular 2 - Episode 1Exploring Angular 2 - Episode 1
Exploring Angular 2 - Episode 1
 
Data Flow Patterns in Angular 2 - Sebastian Müller
Data Flow Patterns in Angular 2 -  Sebastian MüllerData Flow Patterns in Angular 2 -  Sebastian Müller
Data Flow Patterns in Angular 2 - Sebastian Müller
 
Single Page Applications with AngularJS 2.0
Single Page Applications with AngularJS 2.0 Single Page Applications with AngularJS 2.0
Single Page Applications with AngularJS 2.0
 
Dart for Java Developers
Dart for Java DevelopersDart for Java Developers
Dart for Java Developers
 
Angular Workshop_Sarajevo2
Angular Workshop_Sarajevo2Angular Workshop_Sarajevo2
Angular Workshop_Sarajevo2
 
Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
 
The road to Ember.js 2.0
The road to Ember.js 2.0The road to Ember.js 2.0
The road to Ember.js 2.0
 
Workshop 25: React Native - Components
Workshop 25: React Native - ComponentsWorkshop 25: React Native - Components
Workshop 25: React Native - Components
 
Angular 2 Essential Training
Angular 2 Essential Training Angular 2 Essential Training
Angular 2 Essential Training
 

Viewers also liked

Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...
Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...
Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...FalafelSoftware
 
BDOTNET AngularJs Directives - Uday
BDOTNET AngularJs Directives - UdayBDOTNET AngularJs Directives - Uday
BDOTNET AngularJs Directives - UdayUdaya Kumar
 
ReactiveUI: Rx + MVVM
ReactiveUI: Rx + MVVMReactiveUI: Rx + MVVM
ReactiveUI: Rx + MVVMStas Shusha
 
AngularJS Directives
AngularJS DirectivesAngularJS Directives
AngularJS DirectivesEyal Vardi
 
AngularJS custom directive
AngularJS custom directiveAngularJS custom directive
AngularJS custom directiveNascenia IT
 
Building AngularJS Custom Directives
Building AngularJS Custom DirectivesBuilding AngularJS Custom Directives
Building AngularJS Custom DirectivesDan Wahlin
 

Viewers also liked (11)

Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...
Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...
Building Custom AngularJS Directives - A Step-by-Step Guide - Dan Wahlin | Fa...
 
BDOTNET AngularJs Directives - Uday
BDOTNET AngularJs Directives - UdayBDOTNET AngularJs Directives - Uday
BDOTNET AngularJs Directives - Uday
 
AngularJs
AngularJsAngularJs
AngularJs
 
Dive into AngularJS and directives
Dive into AngularJS and directivesDive into AngularJS and directives
Dive into AngularJS and directives
 
Reative UI
Reative UIReative UI
Reative UI
 
ReactiveUI: Rx + MVVM
ReactiveUI: Rx + MVVMReactiveUI: Rx + MVVM
ReactiveUI: Rx + MVVM
 
AngularJS Directives
AngularJS DirectivesAngularJS Directives
AngularJS Directives
 
AngularJS custom directive
AngularJS custom directiveAngularJS custom directive
AngularJS custom directive
 
Building AngularJS Custom Directives
Building AngularJS Custom DirectivesBuilding AngularJS Custom Directives
Building AngularJS Custom Directives
 
Angular 2 observables
Angular 2 observablesAngular 2 observables
Angular 2 observables
 
Angular2 rxjs
Angular2 rxjsAngular2 rxjs
Angular2 rxjs
 

Similar to AngularJS - TechTalk 3/2/2014

AngularJs presentation
AngularJs presentation AngularJs presentation
AngularJs presentation Phan Tuan
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introductionmatt-briggs
 
Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!Doris Chen
 
How Testability Inspires AngularJS Design / Ran Mizrahi
How Testability Inspires AngularJS Design / Ran MizrahiHow Testability Inspires AngularJS Design / Ran Mizrahi
How Testability Inspires AngularJS Design / Ran MizrahiRan Mizrahi
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSGunnar Hillert
 
Coffee@DBG - Exploring Angular JS
Coffee@DBG - Exploring Angular JSCoffee@DBG - Exploring Angular JS
Coffee@DBG - Exploring Angular JSDeepu S Nath
 
OOP, API Design and MVP
OOP, API Design and MVPOOP, API Design and MVP
OOP, API Design and MVPHarshith Keni
 
jquery summit presentation for large scale javascript applications
jquery summit  presentation for large scale javascript applicationsjquery summit  presentation for large scale javascript applications
jquery summit presentation for large scale javascript applicationsDivyanshGupta922023
 
Web technologies-course 12.pptx
Web technologies-course 12.pptxWeb technologies-course 12.pptx
Web technologies-course 12.pptxStefan Oprea
 
Advanced web application architecture Way2Web
Advanced web application architecture Way2WebAdvanced web application architecture Way2Web
Advanced web application architecture Way2WebMatthias Noback
 
Angular workshop - Full Development Guide
Angular workshop - Full Development GuideAngular workshop - Full Development Guide
Angular workshop - Full Development GuideNitin Giri
 
AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)Igor Talevski
 
Dsug 05 02-15 - ScalDI - lightweight DI in Scala
Dsug 05 02-15 - ScalDI - lightweight DI in ScalaDsug 05 02-15 - ScalDI - lightweight DI in Scala
Dsug 05 02-15 - ScalDI - lightweight DI in ScalaUgo Matrangolo
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 

Similar to AngularJS - TechTalk 3/2/2014 (20)

AngularJs presentation
AngularJs presentation AngularJs presentation
AngularJs presentation
 
Angular js
Angular jsAngular js
Angular js
 
Backbone/Marionette introduction
Backbone/Marionette introductionBackbone/Marionette introduction
Backbone/Marionette introduction
 
Intro to AngularJs
Intro to AngularJsIntro to AngularJs
Intro to AngularJs
 
Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!Angular or Backbone: Go Mobile!
Angular or Backbone: Go Mobile!
 
How Testability Inspires AngularJS Design / Ran Mizrahi
How Testability Inspires AngularJS Design / Ran MizrahiHow Testability Inspires AngularJS Design / Ran Mizrahi
How Testability Inspires AngularJS Design / Ran Mizrahi
 
Creating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJSCreating Modular Test-Driven SPAs with Spring and AngularJS
Creating Modular Test-Driven SPAs with Spring and AngularJS
 
AngularJs Crash Course
AngularJs Crash CourseAngularJs Crash Course
AngularJs Crash Course
 
Coffee@DBG - Exploring Angular JS
Coffee@DBG - Exploring Angular JSCoffee@DBG - Exploring Angular JS
Coffee@DBG - Exploring Angular JS
 
OOP, API Design and MVP
OOP, API Design and MVPOOP, API Design and MVP
OOP, API Design and MVP
 
AngularJS Workshop
AngularJS WorkshopAngularJS Workshop
AngularJS Workshop
 
Solid OOPS
Solid OOPSSolid OOPS
Solid OOPS
 
jquery summit presentation for large scale javascript applications
jquery summit  presentation for large scale javascript applicationsjquery summit  presentation for large scale javascript applications
jquery summit presentation for large scale javascript applications
 
Web technologies-course 12.pptx
Web technologies-course 12.pptxWeb technologies-course 12.pptx
Web technologies-course 12.pptx
 
Advanced web application architecture Way2Web
Advanced web application architecture Way2WebAdvanced web application architecture Way2Web
Advanced web application architecture Way2Web
 
Angular workshop - Full Development Guide
Angular workshop - Full Development GuideAngular workshop - Full Development Guide
Angular workshop - Full Development Guide
 
AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)AngularJS 1.x - your first application (problems and solutions)
AngularJS 1.x - your first application (problems and solutions)
 
Angular js
Angular jsAngular js
Angular js
 
Dsug 05 02-15 - ScalDI - lightweight DI in Scala
Dsug 05 02-15 - ScalDI - lightweight DI in ScalaDsug 05 02-15 - ScalDI - lightweight DI in Scala
Dsug 05 02-15 - ScalDI - lightweight DI in Scala
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 

Recently uploaded

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 

Recently uploaded (20)

Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 

AngularJS - TechTalk 3/2/2014