IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Image

Angular Discussion :

Tutoriel sur une introduction au framework web Angular [Tutoriel]


Sujet :

Angular

  1. #1
    Membre extr�mement actif ImageImageImageImageImageImageImageImage
    Image
    Avatar de dukoid
    Image Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par d�faut Tutoriel sur une introduction au framework web Angular
    Bonjour chers membres du Club,

    Je vous propose ce tutoriel sur Angular dans lequel tous les principaux concepts sont pr�sent�s :



    Ce tutoriel est sous la forme d'un m�mo pr�sentant les chapitres les plus importants du framework Angular.
    Chaque chapitre est compos� de codes source agr�ment�s de diverses explications et points-cl�s � connaitre.
    Ce m�mo est destin� aux d�veloppeurs Angular d�butants et aussi confirm�s.
    Connaissances pr�requises :
    • TypeScript : d�butant ;
    • Angular : d�butant.
    Profitez de cette discussion pour laisser vos commentaires.


    Image Retrouvez les meilleurs cours et tutoriels pour le d�veloppement avec Angular

  2. #2
    Membre confirm� ImageImageImageImageImageImageImageImage
    Image Homme Profil pro
    D�veloppement logiciel
    Inscrit en
    Mai 2005
    Messages
    74
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : D�veloppement logiciel
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Par d�faut
    Tr�s bon expos� des fonctionnalit�s principales d'Angular. Et plus rapide � lire que la documentation officielle Image

  3. #3
    Membre actif ImageImageImageImageImageImageImageImage
    Image Profil pro
    Chef projet
    Inscrit en
    Novembre 2002
    Messages
    20
    Image
    D�tails du profilImage
    Informations personnelles :
    �ge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : Chef projet

    Informations forums :
    Inscription : Novembre 2002
    Messages : 20
    Par d�faut
    Super boulot dukoid.

    �a me titille depuis longtemps de me mettre � Angular /Typescript...
    C'est une bonne approche.

  4. #4
    Membre averti ImageImageImageImageImageImageImageImage
    Image Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2006
    Messages
    28
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 28
    Par d�faut
    Bonjour,

    Je viens de d�buter la lecture de ce tutoriel qui me semble d�j� de tr�s grande qualit�.
    Merci pour le partage ! Image

    Je signale d�j� 2 liens erron�s rencontr�s en d�but de tutoriel :

    Angular elements - Composant web r�utilisable : https://angular.io/guide/�l�ments ;
    La bonne url : https://angular.io/guide/elements sans les accents

    �diteur de code online : https://stackblitz.com/- ;
    L� l'url est ok. C'est juste le tiret apr�s le dernier slash qui est en trop.

  5. #5
    Membre extr�mement actif ImageImageImageImageImageImageImageImage
    Image
    Avatar de dukoid
    Image Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par d�faut
    Merci � tous pour vos avis positifs Image

    Fab, merci pour le retour. je vais corriger �a d�s que je peux..

  6. #6
    Membre averti ImageImageImageImageImageImageImageImage
    Image Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2006
    Messages
    28
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 28
    Par d�faut
    Hello,

    De nouveau merci pour ce tuto que je viens de finir apr�s l'avoir picor� pendant quelques semaines.
    Je confirme ma premi�re impression, il est tr�s complet. Je pense que cela a �t� un sacr� boulot de l'�crire !
    Le corollaire est qu'il est peut-�tre un peu ardu pour des personnes d�couvrant compl�tement Angular, ce qui n'�tait pas mon cas.

    Pour contribuer, voici quelques remarques/bugs concernant les codes fournis :

    Lorsque l'on initialise un projet Angular, il nous est d�sormais demand� :
    Do you want to enforce stricter type checking and stricter bundle budgets in the workspace?
    This setting helps improve maintainability and catch bugs ahead of time.
    Si on r�pond "yes", il y a ensuite des probl�mes avec toutes les variables d�clar�es sans �tre initialis�es, sauf si leur type accepte la valeur undefined.
    Cela vient de TypeScript : https://www.typescriptlang.org/docs/...cript-2-7.html

    De m�me dans le chapitre XIV-B. Two-way Data Binding, j'ai �t� oblig� de renommer la fonction r�ceptionFromChild(...) du script parent.component.ts du fait de l'accent.
    Je ne sais pas si cela venait du mode de strict, mais je pense qu'il vaut mieux �viter d'une mani�re g�n�rale les caract�res sp�ciaux dans le code.

    Au bout d'un moment, j'ai refus� le mode strict pour �viter ces probl�mes avec les code fournis avec le tuto.

    XIV-C-2. Pratique

    Dans le script comp2.component.ts, il y a une erreur avec la ligne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    this.stored1Service.emitDataSubject(null);
    La raison de l'erreur est que null n'a pas le type demand� (IUser)
    Une solution possible : rendre tous les attributs du mod�le user optionnels :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    export interface IUser {
        name?: string;
        firstname?: string;
        genre?: 'madame' | 'monsieur' | 'mademoiselle';
    }
    Et remplacer la ligne en erreur par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    this.stored1Service.emitDataSubject({});
    XVIII-C. Sch�ma

    Dans un des commentaires de app.component.html, on peut lire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <!-- /comp21, son composant(ou page) sera projeté dans le <router-outlet> du composant racine: app.component.html, donc ici même (voir plus bas) -->
    Ce n'est pas le cas, car il n'y a pas de composants "comp21". Mais ce n'est qu'un commentaire rest� d'une premi�re version je suppose Image

    XIX-A-2. Pratique

    J'ai rencontr� une erreur �trange dans le script /register/form-register/form-register.component.ts
    Il s'agit de la ligne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    import { MustMatch } from '../validators/must-match.validator';
    G�n�rant un :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    Error: ./src/app/register/form-register/form-register.component.ts
    Module not found: Error: Can't resolve '../validators/must-match.validator' in '/home/.../angular-form1/src/app/register/form-register'
    J'ai r�gl� le bug en renommant le script must-match.validator en must-match-validator.

    XXIV-E-1-c. (A3) Importer dans le fichier module du produit le nouveau package

    Il y a une erreur de chemin dans /features/product/product.module.ts :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    import { ProductPdfViewerComponent } from './components/product-pdf-viewer/product-pdf-viewer.component';
    Il faut mettre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    import { ProductPdfViewerComponent } from './product-pdf-viewer/product-pdf-viewer.component';
    XXVII-B. Sch�ma

    Dans /src/app/app.module.ts, il faut remplacer :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    import { StoredService } from './button-toggle-mat/services/stored.service';
    Par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    import { StoredService } from './services/stored.service';
    De m�me, dans /src/app/button-toggle-mat/components/button-toggle-mat/button-toggle-mat.component.ts, il faut remplacer :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    import { StoredService } from '../../services/stored.service';
    Par :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    import { StoredService } from '../../../services/stored.service';
    Et dans angular.json, j'ai aussi �t� oblig� d'augmenter les "budgets" par passer l'erreur :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Warning: /home/.../src/app/button-toggle-mat/components/button-toggle-mat/button-toggle-mat.component.css exceeded maximum budget. Budget 6.00 kB was not met by 65.96 kB with a total of 71.96 kB.
    Peut-�tre est-ce li� au fait que j'ai choisi l'option css et non scss lors de la cr�ation de l'application.

    XXVIII-D. ngx-deploy-docker

    Lorsque je lance :
    J'obtiens :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    An unhandled exception occurred: Cannot read property 'Workspace' of undefined
    See "/tmp/ng-PnydI4/angular-errors.log" for further details.
    Et quand je vais voir le log :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [error] TypeError: Cannot read property 'Workspace' of undefined
        at Object.<anonymous> (/home/.../angular-ngx-docker1/node_modules/ngx-deploy-docker/src/deploy/builder.js:28:57)
        at Generator.next (<anonymous>)
        at /home/.../angular-ngx-docker1/node_modules/ngx-deploy-docker/src/deploy/builder.js:7:71
        at new Promise (<anonymous>)
        at __awaiter (/home/.../angular-ngx-docker1/node_modules/ngx-deploy-docker/src/deploy/builder.js:3:12)
        at /home/.../angular-ngx-docker1/node_modules/ngx-deploy-docker/src/deploy/builder.js:26:67
        at onInput (/home/.../angular-ngx-docker1/node_modules/@angular-devkit/architect/src/create-builder.js:151:30)
        at SafeSubscriber._next (/home/.../angular-ngx-docker1/node_modules/@angular-devkit/architect/src/create-builder.js:65:29)
        at SafeSubscriber.__tryOrUnsub (/home/.../angular-ngx-docker1/node_modules/@angular-devkit/architect/node_modules/rxjs/internal/Subscriber.js:205:16)
        at SafeSubscriber.next (/home/.../node_modules/@angular-devkit/architect/node_modules/rxjs/internal/Subscriber.js:143:22)
    Les configurations manuelles de Docker expliqu�es dans le chapitre pr�c�dent ont fonctionn�, donc c'est ok pour moi.

    XXIX. �tude de cas n�1 : authentification + acc�s s�curis� � une API

    Dans pages/partials/header/header.component.html, il faut mettre "click" et non "clic".

    Dans le fichier users.json fourni c�t� node.js, le mot de passe fait moins de 6 caract�res alors qu'on a un Validators.minLength(6) Image
    Il suffit d'en saisir un plus long dans le fichier.

    XXXI. Gestion dynamique des metas tags pour le SEO

    Lorsque l'on revient en page1 apr�s �tre pass� par la page2, les title et meta description restent ceux de page2.
    C'est logique et en m�me temps contre-intuitif car je m'attendais � retrouver celles de app.component.ts.
    Donc il vaut mieux d�finir des valeurs pour chaque page.

    XXXII. Les Progressive Web App (PWA)

    Ce n'est pas une erreur mais il n'est pas sp�cifi� qu'il faut ajouter dans app.module.ts :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    import { HttpClientModule } from '@angular/common/http';
    ...
      imports: [
        BrowserModule,
        AppRoutingModule,
        HttpClientModule,
      ],
    Par ailleurs, je n'ai pu tester l'installation de la PWA sur mon PC via firefox (probl�me connu), mais pas non plus via chromium qui pourtant fonctionne g�n�ralement comme chrome. Cela vient peut-�tre du fait que ma machine est sur GNU/Linux ou bien de l'absence d"https" au d�but de l'url. Je n'ai pas install� le vrai chrome pour v�rifier.

    Il y a peut-�tre eu d'autres petits probl�mes que j'ai oubli� de noter. Dans un sens, cela oblige � chercher et donc � mieux comprendre le fonctionnement d'Angular Image

    Je pense qu'il faut pratiquer un bout de temps Angular pour que tout cela devienne naturel.

    Encore merci pour ce tutoriel !

  7. #7
    Membre extr�mement actif ImageImageImageImageImageImageImageImage
    Image
    Avatar de dukoid
    Image Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par d�faut
    wouaah f�licitation d'�tre arriv� au bout de ce tuto Image
    encore merci pour tes retours, je vais les prendre en compte pour un futur update !

    Je suis content que cela as pu te servir dans ton apprentissage.

    ** si tu souhaites une id�e de projet, je te propose celle ci :

    une application de e-commerce avec :
    - authentification
    - affichage des produits (avec pagination)
    - d�tail d'un produit
    - gestion du panier
    - gestion des commandes (sans pagination, d�j� fait avec les produits)
    - sans la livraison, ni le paiement

    le tout de fa�on basique :
    - un produit (nom + prix) associ� � une cat�gorie (nom)
    - une commande (num�ro de commande + date) associ� � un ou des produits et associ� � un utilisateur

    pour le back, � toi de voir (node, symfony, java...) c'est un autre m�tier !
    sinon il y a json-server pour ne pas t'emb�ter � cr�er un back, c'est juste pour rendre service durant le d�veloppement
    ou alors �a peut servir pour des petites choses en prod ...

    **
    il y a la d�mo Angular : hero que l'on retrouve sur la doc officielle
    pour �tudier le code

    **
    on peut aussi r�cup�rer des projets angular sur github pour �tudier le code
    (dans le filtre, faut mettre recently updated pour avoir les derni�res versions)

    **
    pour se perfectionner, il y a pas mal d'articles sur medium : https://medium.com/all-front/how-to-...e-8870bc7544ce
    inscription gratuite, on re�oit un mail tous les jours avec les articles de ta recherche principal "angular" par exemple

    bon courage !

    -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    concernant les points suivants :

    XIV-C-2. Pratique
    this.stored1Service.emitDataSubject(null);

    je n'ai pas l'erreur que tu obtiens et cela m'�tonne parcequ'un objet peut tr�s bien �tre � null


    XIX-A-2. Pratique

    c'est surement du au fait que le nom du fichier est : must-match.validator et que le nom de la classe est : MustMatch
    sur mon windows pas de probl�me mais peut �tre que sur linux il est pointilleux

    j'ai modifi� de la sorte

    must-match.validator
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    import { FormGroup } from '@angular/forms';
    
    export function MustMatchValidator(controlName: string, matchingControlName: string) {
    form-register.component.ts
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    import { MustMatchValidator } from '../validators/must-match.validator';
    ...
    ...
    validator: MustMatchValidator('password', 'confirmPassword')
    peux tu me confirmer si �a fonctionne ainsi ?

    XXVIII-D. ngx-deploy-docker

    j'ai retester sur un autre projet, je n'ai pas cette erreur : "An unhandled exception occurred: Cannot read property 'Workspace' of undefined"

    les myst�res de Docker ?

    XXXI. Gestion dynamique des metas tags pour le SEO

    J'ai test� et je ne constate rien d'anormal en changeant plusieurs fois de page1 � page2

    sur la page 1 et tag description (qui h�rite de app.component), est toujours celui de app.component
    sur la page 2 et tag description, est toujours celui d�fini dans page2

    bizaaarre !

  8. #8
    Membre averti ImageImageImageImageImageImageImageImage
    Image Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2006
    Messages
    28
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 28
    Par d�faut
    Merci pour tes conseils.

    Pour la mise en pratique, j'ai dans la t�te de r��crire une petite application de suivi de comptes domestiques fonctionnant actuellement en 100% en PHP, utilis�e et connue que par moi-m�me.
    Le cordonnier �tant le plus mal chauss�, autant dire qu'elle ne paye pas de mine Image
    L'id�e est d'�crire le backend avec Laravel que je compte aussi apprendre et le front avec Angular, m�me si dans l'absolu du JS natif ferait le job.
    Et pour le coup, je pourrai la publier le code en licence libre, des fois que cela pourrait servir d'autres personnes...

    Sinon, j'ai test� de nouveau le code du "XIV-C-2." en remettant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    this.stored1Service.emitDataSubject(null);
    Et j'ai de nouveau le m�me bug :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    Error: src/app/comp2/comp2.component.ts:41:41 - error TS2345: Argument of type 'null' is not assignable to parameter of type 'IUser'.
     
    41     this.stored1Service.emitDataSubject(null); // (4) bonne pratique : on demande au service d'effectuer le next, car c'est le service qui est chargé d'effectuer des actions sur les observables
    Mais avant de me repencher sur Angular, j'ai pris le temps de lire une bonne partie de la doc de TypeScript et cela me semble logique.
    Normalement il faut pr�ciser que l'on accepte la valeur null.
    Par contre certaines versions de TypeScript peuvent �tre plus tol�rantes que d'autres.
    Pour ma part je suis en version 3.9.7. mais je pr�vois une mise � jour de mon syst�me dans la semaine donc TypeScript va suivre.

    Pour le bug du "XIX-A-2.", je viens de tester ta solution et je te confirme que cela marche. Bien jou� Image

    Pour le reste, ce sont les fameux myst�res du code Image

    Encore merci et bonne semaine.

  9. #9
    Invit� de passage Image
    Image Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    1
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1
    Par d�faut Fais moi r�ver !
    bonjour Dukoid,

    Merci pour ce tuto tr�s complet.Mais please, please, fais moi r�ver et donne moi envie avec quelques captures d'�crans du rendu de l'app stp Image

  10. #10
    Membre extr�mement actif ImageImageImageImageImageImageImageImage
    Image
    Avatar de dukoid
    Image Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Image
    D�tails du profilImage
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par d�faut
    ImageImage

    si tu as suivi le tuto tu t'apercevra justement que c'est visuellement tr�s moche.
    en effet, j'ai enlev� le design afin d'avoir le moins de code au possible.

    peut �tre le chapitre 30 te fera r�ver :

    https://iner-dukoid.developpez.com/t...-angular/#LXXX

    c'est dispo sur git, pr�t � �tre lanc� !

Discussions similaires

  1. R�ponses: 0
    Dernier message: 05/12/2014, 11h59
  2. R�ponses: 0
    Dernier message: 09/01/2005, 13h00
  3. R�ponses: 0
    Dernier message: 09/01/2005, 13h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo
ImageImageImage