SlideShare a Scribd company logo
Angularjs
http://angularjs.org
Versione 1.x
Cos'è AngularJS
Angularjs è un framework MVC sviluppato da Google
per sviluppare Web Application
● Per framework si intende:
“una struttura che facilita lo sviluppo, sia in termini di
velocità che in termini di ordine e mantenibilità del
codice”
Non è una libreria!
Full-featured SPA
● L'applicazione Single Page Application viene eseguita
all’interno di una singola pagina HTML
● tutte le risorse necessarie alla sua esecuzione vengono
caricate dinamicamente ed aggiunte al DOM della pagina
corrente.
● All’interno di una singola pagina vengono caricate viste
diverse in base all’interazione dell’utente con la pagina
stessa.
● Questo approccio consente di creare applicazioni
responsive che si avvicinano al funzionamento delle
applicazioni desktop.
Angularjs friends
● Bower: è un package manager per il web,
ovvero offre la possibilità di gestire le
dipendenze Web di applicazioni
esclusivamente front-end
● Grunt: è uno strumento di build task based:
basato su operazioni concatenabili (stile Ant),
attività come e minificazione e
concatenazione
● Yeoman: tool per generare scaffolding di
applicazioni, che utilizza Grunt per il processo
di build e Bower per la gestione delle
dipendenze
MVC
Il Model-View-Controller (MVC, talvolta tradotto in
italiano Modello-Vista-Controllo), in informatica, è un
pattern architetturale molto diffuso nello sviluppo di
sistemi software, in particolare nell'ambito della
programmazione orientata agli oggetti, in grado di
separare la logica di presentazione dei dati dalla
logica di business.
Angularjs
Componenti Angularjs
Direttive
● Le direttive sono la funzionalità predominante e potente
disponibile solo in AngularJS.
● Permettono di creare componenti HTML personalizzati e
riusabili, che possono essere utilizzati per nascondere la
complessità della struttura DOM e permettono di
"decorare" alcuni elementi con comportamente specifici.
Vi consentono di estendere il vostro HTML permettendovi
di inventare nuove sintassi HTML, e istruendo AngularJS
per incorporare le loro funzionalità nella pagina.
● Hanno il prefisso "ng-", saranno inserite come attributi
HTML e funzionano come elementi standalone.
View
<!doctype html>
<html ng-app=”cspApp”>
<head>
<meta charset="utf-8">
<title>Prima pagina con AngularJS</title>
<script src="js/angular.min.js"></script>
<script src="js/app.js"></script>
</head>
<body ng-controller=”MainCtrl”>
<p>
<strong>{{welcomeText}}<strong><br/>
La somma di 12 e 13 &egrave; uguale a {{12+13}}
</p>
</body>
</html>
Direttiva
Controller
Modello
Controller
● Il controller in Angular è collegato a un
elemento del DOM (Document Object Model)
tramite una direttiva.
angular.module('cspApp', [])
.controller('MainCtrl', function ($scope) {
$scope.welcomeText = 'Benvenuto!';
}
---------
<body ng-controller=”MainCtrl”>
Model: L’oggetto scope
Nella terminologia di AngularJS uno scope
(spesso indicato nel codice con $scope) indica
il contesto in cui vengono salvati i dati di
un’applicazione (il model) ed in cui vengono
valutate le espressioni utilizzate nella view.
Lo $scope è il “collante” tra la vista e il controller
Data Binding
● E' il meccanismo di sincronizzazione automatica dei dati tra il modello e la
view
● ogni modifica al modello dei dati si riflette automaticamente sulla view e
ogni modifica alla view viene riportata sul modello dei dati
● È sufficiente associare il modello allo scope all’interno del controller ed
utilizzare la direttiva ng-model nella view oppure usare le espressioni
Service
● consentono di implementare la logica
dell’applicazione, cioè le funzionalità che si
occupano di elaborare e/o recuperare i dati da
visualizzare sulle view tramite i controller.
● Utilizzate in AngularJS per consumare dati
provenienti da un’API REST (ma non solo...)
Dependency Injection
● la dependency injection consente di
combinare insieme componenti allo scopo di
strutturare un’applicazione.
● Se all’interno di un componente Angular
abbiamo bisogno delle funzionalità offerte da
un altro componente non dobbiamo fare altro
che dichiararne la dipendenza.
angular.module('cspApp', [])
.service("userService", function($http) {
return $http.get('http://restapi/utente');
})
angular.module('cspApp').controller('MainCtrl', function
($scope, userService) {
userService.then(function (nome) {
$scope.welcomeText = 'Benvenuto ' + nome + '!';
},
function () {
$scope.welcomeText = 'Non mi ricordo il tuo nome :(';
});
}
Dependency
Injection
Teoria delle “promesse”
● Sono oggetti che rappresentano il risultato di una chiamata di funzione
asincrona
● rappresentano una promessa che un risultato verrà fornito non appena
disponibile
● Il vantaggio dell’utilizzo delle promise consiste nel rendere il codice più
leggibile
$http({
method: 'GET',
url: '/someUrl'
}).then(function successCallback(response) {
// Chiamata asincrona
// “response” contiene il risultato del Server
}, function errorCallback(response) {
// Chiamata asincrona in caso di errore
// “response” contiene il risultato di errore del Server
});
Applicazioni mobile
Cos'è Cordova
● Si tratta di un Framework – una serie di strumenti di
sviluppo – che consente agli sviluppatori di costruire
applicazioni mobile utilizzando dei linguaggi specifici del
Web: HTML, CSS e JavaScript.
● Il codice sorgente, quasi identico, permetterà di
sviluppare applicazioni su differenti piattaforme.
Attualmente, Cordova è, tra gli altri, compatibile con i
sistemi: iOS, Android, Blackberry, WindowsPhone,
PalmWebOS, Bada e Symbian.
https://cordova.apache.org/
Cos’è Ionic
● Ionic mette semplicemente insieme Apache
Cordova e AngularJS
● Essendo basato su Cordova, le app
svilluppate con Ionic sono compatibili non solo
con iOS e Android, ma anche con Windows
Phone, Amazon Fire OS, Firefox OS.
http://ionicframework.com/
Angular 2…
Next Time!
Ora passiamo al codice!

More Related Content

What's hot (20)

PPTX
Slide typescript - net campus
DotNetCampus
 
PPTX
AngularJS: accessibility
Vittorio Conte
 
PPTX
AngularJS: server communication
Vittorio Conte
 
PPTX
Angular framework
Luca Modica
 
PDF
Applicazioni Web ultra-performanti con Vue.js e Delphi
Marco Breveglieri
 
PPTX
Migliora il tuo codice con knockout.js
Andrea Dottor
 
PDF
Zend Framework Workshop Parte1
massimiliano.wosz
 
PPTX
Require js
Rajashekar Bhagavatula
 
PPT
Zend Framework Workshop Parte2
massimiliano.wosz
 
PDF
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Marco Breveglieri
 
PDF
Angular js o React? Spunti e idee per la scelta di un framework
Giovanni Buffa
 
ODP
Corso angular js base
Beniamino Ferrari
 
PDF
Angular 4 - convertire o migrare un'applicazione Angularjs
Giovanni Buffa
 
PPTX
Asp.net 4 Community Tour VS2010
Fabrizio Bernabei
 
ODP
Corso angular js componenti
Beniamino Ferrari
 
PPT
Alla scoperta di Zend Framework 1.8
massimiliano.wosz
 
PDF
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...
Codemotion
 
PDF
ReactJS for beginners
Ilaria Franchini
 
PDF
Il Web orientato al futuro: Express, Angular e nodeJS
Eugenio Minardi
 
PDF
Acadevmy - Angular Overview
Francesco Sciuti
 
Slide typescript - net campus
DotNetCampus
 
AngularJS: accessibility
Vittorio Conte
 
AngularJS: server communication
Vittorio Conte
 
Angular framework
Luca Modica
 
Applicazioni Web ultra-performanti con Vue.js e Delphi
Marco Breveglieri
 
Migliora il tuo codice con knockout.js
Andrea Dottor
 
Zend Framework Workshop Parte1
massimiliano.wosz
 
Zend Framework Workshop Parte2
massimiliano.wosz
 
Sviluppo Web con React e Delphi - Seminario Delphi Day 2016, Piacenza
Marco Breveglieri
 
Angular js o React? Spunti e idee per la scelta di un framework
Giovanni Buffa
 
Corso angular js base
Beniamino Ferrari
 
Angular 4 - convertire o migrare un'applicazione Angularjs
Giovanni Buffa
 
Asp.net 4 Community Tour VS2010
Fabrizio Bernabei
 
Corso angular js componenti
Beniamino Ferrari
 
Alla scoperta di Zend Framework 1.8
massimiliano.wosz
 
Tech Webinar: Advanced AngularJS, tecniche avanzate per padroneggiare il fram...
Codemotion
 
ReactJS for beginners
Ilaria Franchini
 
Il Web orientato al futuro: Express, Angular e nodeJS
Eugenio Minardi
 
Acadevmy - Angular Overview
Francesco Sciuti
 

Viewers also liked (20)

PDF
Introduction to AngularJS
Jussi Pohjolainen
 
PDF
AngularJS 101 - Everything you need to know to get started
Stéphane Bégaudeau
 
PDF
Gui Report Studio in java
Khagendra Chapre
 
PPT
introduction to Angularjs basics
Ravindra K
 
PDF
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
Carlo Bonamico
 
PDF
Angular 2 - The Next Framework
Commit University
 
PPTX
Angular js
miladiir
 
DOCX
Project-Based Learning (PBL) Proposal [UIIT assessment item one]
sycindyng
 
PPTX
Mobileapps 111013123450-phpapp01
Wealthnet LLC
 
PPSX
Soft Eng 1st PPT
Carlo Miguel Arca
 
PPTX
συναισθηματικη νοημοσυνη
Yolanda Komianou
 
DOCX
Infection control risk assessment
Khusnul Khatimah
 
PPT
Ppt0000016
monsomriu
 
PPT
Dollars and sense part, pitfalls and purpose of finances
Roger Hernandez
 
PDF
Eb q2-tugas1 11410100279
Annisa Nagari
 
PPTX
Overview
Germain Anthony
 
PPTX
Para hablar de amor - paintings
Makala (D)
 
DOCX
Worksheet Listening
sycindyng
 
PDF
Digital Partner for your Brand Communication
Saurabh Pokharna
 
DOC
Gormiti gormiti
Nerea Romero Yesa
 
Introduction to AngularJS
Jussi Pohjolainen
 
AngularJS 101 - Everything you need to know to get started
Stéphane Bégaudeau
 
Gui Report Studio in java
Khagendra Chapre
 
introduction to Angularjs basics
Ravindra K
 
AngularJS: How to code today with tomorrow tools - Codemotion Milan 2013
Carlo Bonamico
 
Angular 2 - The Next Framework
Commit University
 
Angular js
miladiir
 
Project-Based Learning (PBL) Proposal [UIIT assessment item one]
sycindyng
 
Mobileapps 111013123450-phpapp01
Wealthnet LLC
 
Soft Eng 1st PPT
Carlo Miguel Arca
 
συναισθηματικη νοημοσυνη
Yolanda Komianou
 
Infection control risk assessment
Khusnul Khatimah
 
Ppt0000016
monsomriu
 
Dollars and sense part, pitfalls and purpose of finances
Roger Hernandez
 
Eb q2-tugas1 11410100279
Annisa Nagari
 
Overview
Germain Anthony
 
Para hablar de amor - paintings
Makala (D)
 
Worksheet Listening
sycindyng
 
Digital Partner for your Brand Communication
Saurabh Pokharna
 
Gormiti gormiti
Nerea Romero Yesa
 
Ad

Similar to Angularjs (20)

PPTX
Fe04 angular js-101
DotNetCampus
 
PPTX
Corso 3 giorni Angular 2+
Emanuele Benedetti
 
PDF
Introduzione ad angular 7/8
Valerio Radice
 
PDF
DrupalDay 2014: AngularJS + IonicFramework + Drupal Services
Michel Morelli
 
PDF
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
DrupalDay
 
PDF
Data binding libera tutti!
Salvatore Laisa
 
PDF
Data binding libera tutti!
Appsterdam Milan
 
ODP
Corso angular js material
Beniamino Ferrari
 
PPTX
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Gabriele Gaggi
 
PPTX
Slide typescript - xe dotnet - Codemotion Rome 2015
Codemotion
 
PPTX
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioni
Vendini-Italy
 
PPTX
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
Gabriele Gaggi
 
PPTX
Meetup ASP.NET Core Angular
dotnetcode
 
PDF
Introduzione a node.js
Luciano Colosio
 
PDF
Introduzione a Node.js
Michele Capra
 
PPTX
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
DotNetCampus
 
PPTX
Angular in produzione: Best Practices e Performance Improvements
Michele Aponte
 
PPTX
Servizi e Dependency Injection in Angular
Valerio Como
 
PPTX
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
Luca Milan
 
PPT
E suap - tecnologie client
Sabino Labarile
 
Fe04 angular js-101
DotNetCampus
 
Corso 3 giorni Angular 2+
Emanuele Benedetti
 
Introduzione ad angular 7/8
Valerio Radice
 
DrupalDay 2014: AngularJS + IonicFramework + Drupal Services
Michel Morelli
 
DDAY2014 - Costruire una app mobile con Ionic, AngularJS ed ovviamente Drupal
DrupalDay
 
Data binding libera tutti!
Salvatore Laisa
 
Data binding libera tutti!
Appsterdam Milan
 
Corso angular js material
Beniamino Ferrari
 
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Gabriele Gaggi
 
Slide typescript - xe dotnet - Codemotion Rome 2015
Codemotion
 
Open Day June 17th Creare componenti AngularJS riutilizzabili tra applicazioni
Vendini-Italy
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
Gabriele Gaggi
 
Meetup ASP.NET Core Angular
dotnetcode
 
Introduzione a node.js
Luciano Colosio
 
Introduzione a Node.js
Michele Capra
 
TYPESCRIPT, ANGULAR E BOOTSTRAP ASSIEME PER APPLICAZIONI REAL WORLD
DotNetCampus
 
Angular in produzione: Best Practices e Performance Improvements
Michele Aponte
 
Servizi e Dependency Injection in Angular
Valerio Como
 
"Don't call us, we'll call you" - AngularJS meets Event-Driven Architecture
Luca Milan
 
E suap - tecnologie client
Sabino Labarile
 
Ad

Angularjs

  • 3. Cos'è AngularJS Angularjs è un framework MVC sviluppato da Google per sviluppare Web Application ● Per framework si intende: “una struttura che facilita lo sviluppo, sia in termini di velocità che in termini di ordine e mantenibilità del codice” Non è una libreria!
  • 4. Full-featured SPA ● L'applicazione Single Page Application viene eseguita all’interno di una singola pagina HTML ● tutte le risorse necessarie alla sua esecuzione vengono caricate dinamicamente ed aggiunte al DOM della pagina corrente. ● All’interno di una singola pagina vengono caricate viste diverse in base all’interazione dell’utente con la pagina stessa. ● Questo approccio consente di creare applicazioni responsive che si avvicinano al funzionamento delle applicazioni desktop.
  • 6. ● Bower: è un package manager per il web, ovvero offre la possibilità di gestire le dipendenze Web di applicazioni esclusivamente front-end ● Grunt: è uno strumento di build task based: basato su operazioni concatenabili (stile Ant), attività come e minificazione e concatenazione ● Yeoman: tool per generare scaffolding di applicazioni, che utilizza Grunt per il processo di build e Bower per la gestione delle dipendenze
  • 7. MVC Il Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllo), in informatica, è un pattern architetturale molto diffuso nello sviluppo di sistemi software, in particolare nell'ambito della programmazione orientata agli oggetti, in grado di separare la logica di presentazione dei dati dalla logica di business.
  • 10. Direttive ● Le direttive sono la funzionalità predominante e potente disponibile solo in AngularJS. ● Permettono di creare componenti HTML personalizzati e riusabili, che possono essere utilizzati per nascondere la complessità della struttura DOM e permettono di "decorare" alcuni elementi con comportamente specifici. Vi consentono di estendere il vostro HTML permettendovi di inventare nuove sintassi HTML, e istruendo AngularJS per incorporare le loro funzionalità nella pagina. ● Hanno il prefisso "ng-", saranno inserite come attributi HTML e funzionano come elementi standalone.
  • 11. View <!doctype html> <html ng-app=”cspApp”> <head> <meta charset="utf-8"> <title>Prima pagina con AngularJS</title> <script src="js/angular.min.js"></script> <script src="js/app.js"></script> </head> <body ng-controller=”MainCtrl”> <p> <strong>{{welcomeText}}<strong><br/> La somma di 12 e 13 &egrave; uguale a {{12+13}} </p> </body> </html> Direttiva Controller Modello
  • 12. Controller ● Il controller in Angular è collegato a un elemento del DOM (Document Object Model) tramite una direttiva. angular.module('cspApp', []) .controller('MainCtrl', function ($scope) { $scope.welcomeText = 'Benvenuto!'; } --------- <body ng-controller=”MainCtrl”>
  • 13. Model: L’oggetto scope Nella terminologia di AngularJS uno scope (spesso indicato nel codice con $scope) indica il contesto in cui vengono salvati i dati di un’applicazione (il model) ed in cui vengono valutate le espressioni utilizzate nella view. Lo $scope è il “collante” tra la vista e il controller
  • 14. Data Binding ● E' il meccanismo di sincronizzazione automatica dei dati tra il modello e la view ● ogni modifica al modello dei dati si riflette automaticamente sulla view e ogni modifica alla view viene riportata sul modello dei dati ● È sufficiente associare il modello allo scope all’interno del controller ed utilizzare la direttiva ng-model nella view oppure usare le espressioni
  • 15. Service ● consentono di implementare la logica dell’applicazione, cioè le funzionalità che si occupano di elaborare e/o recuperare i dati da visualizzare sulle view tramite i controller. ● Utilizzate in AngularJS per consumare dati provenienti da un’API REST (ma non solo...)
  • 16. Dependency Injection ● la dependency injection consente di combinare insieme componenti allo scopo di strutturare un’applicazione. ● Se all’interno di un componente Angular abbiamo bisogno delle funzionalità offerte da un altro componente non dobbiamo fare altro che dichiararne la dipendenza.
  • 17. angular.module('cspApp', []) .service("userService", function($http) { return $http.get('http://restapi/utente'); }) angular.module('cspApp').controller('MainCtrl', function ($scope, userService) { userService.then(function (nome) { $scope.welcomeText = 'Benvenuto ' + nome + '!'; }, function () { $scope.welcomeText = 'Non mi ricordo il tuo nome :('; }); } Dependency Injection
  • 18. Teoria delle “promesse” ● Sono oggetti che rappresentano il risultato di una chiamata di funzione asincrona ● rappresentano una promessa che un risultato verrà fornito non appena disponibile ● Il vantaggio dell’utilizzo delle promise consiste nel rendere il codice più leggibile $http({ method: 'GET', url: '/someUrl' }).then(function successCallback(response) { // Chiamata asincrona // “response” contiene il risultato del Server }, function errorCallback(response) { // Chiamata asincrona in caso di errore // “response” contiene il risultato di errore del Server });
  • 20. Cos'è Cordova ● Si tratta di un Framework – una serie di strumenti di sviluppo – che consente agli sviluppatori di costruire applicazioni mobile utilizzando dei linguaggi specifici del Web: HTML, CSS e JavaScript. ● Il codice sorgente, quasi identico, permetterà di sviluppare applicazioni su differenti piattaforme. Attualmente, Cordova è, tra gli altri, compatibile con i sistemi: iOS, Android, Blackberry, WindowsPhone, PalmWebOS, Bada e Symbian. https://cordova.apache.org/
  • 21. Cos’è Ionic ● Ionic mette semplicemente insieme Apache Cordova e AngularJS ● Essendo basato su Cordova, le app svilluppate con Ionic sono compatibili non solo con iOS e Android, ma anche con Windows Phone, Amazon Fire OS, Firefox OS. http://ionicframework.com/
  • 22. Angular 2… Next Time! Ora passiamo al codice!