Professional Documents
Culture Documents
Índex de continguts
1. Instal·lació Angular CLI..................................................................................2
2. Actualització Angular CLI...............................................................................2
3. Creació projecte.............................................................................................2
4. Instal·lació de mòduls en el projecte.............................................................2
5. Principlas comendes en Angular CLI.............................................................3
a) Generació nova aplicació..........................................................................3
b) Creació qualsevol element........................................................................3
c) Compilació aplicació..................................................................................3
6. Carpetes i fitxers importants dins del projecte...............................................3
a) Carpeta src................................................................................................3
b) Carpeta assets...........................................................................................3
c) Fitxer main.ts.............................................................................................3
d) Fitxer «.angular-cli.json»...........................................................................3
7. Documents per a provar................................................................................3
a) View que utilitzarem en la nostra aplicació de prova....................................3
b) CSS per a l’aplicació de proves....................................................................6
8. Models d’esdeveniments...............................................................................6
9. Models bàsics d’esdeveniments....................................................................7
a) Tipus d’esdeveniments..............................................................................7
10. Objecte event...............................................................................................8
a) Infomració sobre l'esdeveniment...................................................................9
b) Infomració sobre els esdeveniments del teclat...........................................10
c) Informació sobre els esdeveniments del ratolí............................................11
11. Per saber-ne més......................................................................................12
Pàgina 1 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Per a saber la versió de cadascú dels programes: node -v, npm -v, ng –version
rm -rf node_modules
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
3. Creació projecte.
Per a crear un projecte Angular s'ha de realitzar:
Pàgina 2 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
c) Compilació aplicació.
a) Carpeta node_modules
Aquesta és la carpeta conté tots els mòduls que l’aplicació pot utilitzar. Cada cop que un
instal·la un mòdul es guarda en aquesta carpeta.
b) Carpeta src.
Aquesta és la carpeta on es troba tot el codi de l'aplicació. Dins d'aquesta carpeta tenim la
subcarpeta «app» que és on posarem el nostre codi.
c) Carpeta assets.
La carpeta "assets" és la que per defecte angular deixa per a tenir url's públiques que poden
ser linkades al document. En aquesta carpeta es deixa bootsraap i jQuery.
d) Fitxer main.ts
Aquest fitxer conté el mòdul principal que apunta a l'aplicació. Es pot canviar el nom del mòdul.
e) Fitxer «.angular-cli.json»
Aquest fitxer conté dades de configuració S'ha de modificar el fitxer ".angular-cli.json" (està
ocult) en compte! Per a incloure en la part
"assets": [
"assets",
"favicon.ico",
"app/images" <-- Incloure carpetes on tens les images
],
Pàgina 3 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Pàgina 4 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Pàgina 5 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
.ng-valid.ng-dirty
{
border-color:green
}*/
.ng-valid[required], .ng-valid.required {
border-left: 5px solid #42A948; /* green */
}
.ng-invalid:not(form) {
border-left: 5px solid #a94442; /* red */
}
Pàgina 6 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
.ng-focus:not(form) {
border-left: 5px solid blue; /* red */
}
8. Models d’esdeveniments.
Crear pàgines i aplicacions web sempre ha estat molt més complex del que hauria de
ser-ho a causa de les incompatibilitats entre navegadors. Tot i que existeixen desenes
d'estàndards per a les tecnologies emprades, els navegadors no els suporten completament o
fins i tot els ignoren.
a) Tipus d’esdeveniments.
En aquest model, cada element o etiqueta XHTML defineix la seva pròpia llista de
possibles esdeveniments que se li poden assignar. Un mateix tipus d'esdeveniment (per
exemple, punxar el botó esquerre del ratolí) pot estar definit per diversos elements XHTML
diferents i un mateix element XHTML pot tenir associats diversos esdeveniments diferents.
El nom de cada esdeveniment es construeix mitjançant el prefix on, seguit del nom en
anglès de l'acció associada a l'esdeveniment. Així, l'esdeveniment de punxar un element amb el
ratolí es denomina onclick i l'esdeveniment associat a l'acció de moure el ratolí es denomina
onmousemove.
La següent taula resumeix els esdeveniments més importants definits per JavaScript:
Pàgina 7 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Les accions típiques que realitza un usuari en una pàgina web poden donar lloc a una
successió d'esdeveniments. En prémer per exemple sobre un botó de tipus <input
type="submit"> es desencadenen els esdeveniments onmousedown, onclick, onmouseup i
onsubmit de forma consecutiva.
Pàgina 8 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Encara que és un comportament que resulta molt estrany al principi, tots els
navegadors moderns excepte Internet Explorer creen de forma automàtica un argument que es
passa a la funció manejadora, pel que no cal incloure'l en la crida a la funció manejadora.
D'aquesta manera, per a utilitzar aquest argument, només cal assignar-li un nom, ja que els
navegadors ho creen automàticament.
En resum, en els navegadors tipus Internet Explorer, l'objecte event s'obté directament
mitjançant:
Exemple:
var esdeveniment = window.event;
Exemple:
function gestorEsdeveniments(elEsdeveniment) {
var esdeveniment = elEsdeveniment;
}
Si es vol programar una aplicació que funcioni correctament en tots els navegadors, cal
obtenir l'objecte event de forma correcta segons cada navegador. El següent codi mostra la
forma correcta d'obtenir l'objecte event en qualsevol navegador:
Exemple:
function gestorEsdeveniments(elEsdeveniment) {
var esdeveniment = elEsdeveniment || window.event;
}
Una vegada obtingut l'objecte event, ja es pot accedir a tota la informació relacionada
amb l'esdeveniment, que depèn del tipus d'esdeveniment produït.
Exemple:
var tipo = esdeveniment.tipe;
Mitjançant aquesta propietat, es pot refer de forma més senzilla l'exemple anterior en el
qual es ressaltava una secció de continguts en passar el ratolí per sobre:
Exemple:
Pàgina 9 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
window.onload = function() {
document.getElementById("seccio").onmouseover = resalta;
document.getElementById("seccio").onmouseout = resalta;
}
A més, hi ha tres esdeveniments diferents per a les pulsacions de les tecles ( onkeyup,
onkeypress i onkeydown). Finalment, existeixen dos tipus de tecles: les tecles normals (com
lletres, números i símbols normals) i les tecles especials (com ENTER, Alt, Shift, etc.)
Quan un usuari prem una tecla normal, es produeixen tres esdeveniments seguits i en
aquest ordre: onkeydown, onkeypress i onkeyup. L'esdeveniment onkeydown es correspon
amb el fet de prémer una tecla i no deixar-la anar; l'esdeveniment onkeypress és la pròpia
pulsació de la tecla i l'esdeveniment onkeyup fa referència al fet de deixar anar una tecla que
estava premuda.
La forma més senzilla d'obtenir la informació sobre la tecla que s'ha premut és
mitjançant l'esdeveniment onkeypress. La informació que proporcionen els esdeveniments
onkeydown i onkeyup es pot considerar com més tècnica, ja que retornen el codi intern de cada
tecla i no el caràcter que s'ha premut.
A continuació s'inclou una llista amb totes les propietats diferents de tots els
esdeveniments de teclat tant a Internet Explorer com a la resta de navegadors:
* Esdeveniment keypress:
o Internet Explorer:
+ Propietat keyCode: el codi del caràcter de la tecla que s'ha premut
+ Propietat charCode: no definit
o Resta de navegadors:
+ Propietat keyCode: per a les tecles normals, no definit. Per a les
Pàgina 10 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Per convertir el codi d'un caràcter (no confondre amb el codi intern) al caràcter que
representa la tecla que s'ha premut, s'utilitza la funció String.fromCharCode ().
A continuació s'inclou un script que mostra tota la informació sobre els tres
esdeveniments de teclat:
Exemple:
function mostraInformacio(elEsdeveniment) {
var esdeveniment = elEsdeveniment || window.event;
document.getElementById("info").innerHTML += "<br>--------------------------------------
<br>" + missatge;
}
window.onload = function(){
document.onkeyup = mostraInformacio;
document.onkeypress = mostraInformacio;
document.onkeydown = mostraInformacio;
}
...
<div id="info"></div>
Els codis mostrats per les tecles especials coincideixen amb els de Firefox i la resta de
navegadors, però recorda que poden variar en funció del teclat que s'utilitza i en funció de la
disposició de les tecles per a cada idioma.
Pàgina 11 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Exemple:
function mostraInformacio(elEsdeveniment) {
var esdeveniment = elEsdeveniment || window.event;
var coordenadaX = esdeveniment.clientX;
var coordenadaY = esdeveniment.clientY;
alert("Has clicat el ratolí en la posició: " + coordenadaX + ", " + coordenadaY);
}
document.onclick = mostraInformacio;
Les coordenades de la posició del punter del ratolí respecte de la pantalla completa de
l'ordinador de l'usuari s'obtenen de la mateixa manera, mitjançant les propietats screenX i
screenY:
Exemple:
var coordenadaX = esdeveniment.screenX;
var coordenadaY = esdeveniment.screenY;
Moltes vegades, és necessari obtenir un altre parell de coordenades diferents: les que
corresponen a la posició del ratolí respecte de l'origen de la pàgina. Aquestes coordenades no
sempre coincideixen amb les coordenades respecte de l'origen de la finestra del navegador, ja
que l'usuari pot fer scroll sobre la pàgina web. Internet Explorer no proporciona aquestes
coordenades de forma directa, mentre que la resta de navegadors sí que ho fan. D'aquesta
manera, cal detectar si el navegador és de tipus Internet Explorer i en cas afirmatiu fer un càlcul
senzill:
Exemple:
// Detectar si el navegador es Internet Explorer
var ie = navigator.userAgent.toLowerCase().indexOf('msie')!=-1;
if(ie) {
coordenadaX = evento.clientX + document.body.scrollLeft;
coordenadaY = evento.clientY + document.body.scrollTop;
}
else {
coordenadaX = evento.pageX;
coordenadaY = evento.pageY;
}
alert("Has cliclat el ratolí en la posició: " + coordenadaX + ", " + coordenadaY + "
respecte de la pàgina web");
Pàgina 12 de 13
Curs 2017-2018 M06 – Desenvolupament Web En Entorn Client
Pàgina 13 de 13