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

Angular Discussion :

[Angular 2] Démontrer la fonction map()


Sujet :

Angular

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut [Angular 2] Démontrer la fonction map()
    Bonsoir,

    je but toujours sur cette fonction map(), j'essayer de faire sa démonstration pour la comprendre et bien l'utiliser,
    que pensez vous de ce bout de script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    import { Component } from '@angular/core';
    import { Http, Response,Headers,RequestOptions } from '@angular/http';
    import { Observable } from 'rxjs/Rx';
    import 'rxjs/add/operator/map';
     
    @Component({
      selector: 'my-app',
      template: `<h1>Hello {{name}}</h1>`,
    })
    export class AppComponent{
      name = 'Angular';
     
      constructor(private _http:Http){
          this.getWbs();
      }
     
      getWbs():Observable<Matiere>{
        let wbs = this._http.get('http://192.168.0.11:8000/api').map(
          reponse => reponse.json()
        );
        console.log(wbs);
     
        let M:Matiere = new Matiere();
        return wbs;
      }
    }
     
    class Matiere{
      id:number;
      name:string;
      _id:string;
     
      constructor(){
        console.log("je suis la classe matiere");
        console.log("mon id est:",this.id);
        console.log("mon id est:",this.name);
        console.log("mon id est:",this._id);
      }
    }
    avec postman voici la réponse de la requête get:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [{"id":0,"name":"unseul","_id":"587d04affd91045ab7a73ac3"}]
    Nom : wbs.png
Affichages : 867
Taille : 32,7 Ko
    voici ce que j'ai en console:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Object { _isScalar: false, source: Object, operator: Object } app.component.js:22:9
    je suis la classe matiere app.component.js:38:9
    mon id est: undefined app.component.js:39:9
    mon id est: undefined app.component.js:40:9
    mon id est: undefined app.component.js:41:9
    Angular is running in the development mode. Call enableProdMode() to enable the production mode.
    mes attributs ne sont pas chargé ? (undefined)
    comment je dois m'y prendre à moin que je n'ai toujours pas compris la fonction map() ?

    merci de vos réponses

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Après quelques visionnage de vidéo, j'ai enfin compris comment utiliser le map():

    voici le script qui fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    import { Component } from '@angular/core';
    import { Http, Response,Headers,RequestOptions } from '@angular/http';
    import { Observable } from 'rxjs/Rx';
    import 'rxjs/add/operator/map';
     
    @Component({
      selector: 'my-app',
      template: `<div class="row" *ngFor="let matiere of matieres">
        <div class="col-sm-8">
            <h4>{{matiere.id}}: {{matiere.name}}</h4>
        </div>
    </div>`,
    })
    export class AppComponent{ 
      name = 'Angular';
     
      private matieres:Matiere[];
     
      constructor(private _http:Http){
          let r =this.getWbs().subscribe(data =>{
            this.matieres = data}
            );
          console.log(this.matieres); //! impossible de le savoir undefined
     
     
      }
     
      getWbs():Observable<Matiere[]>{
        let wbs = this._http.get('http://192.168.0.11:8000/api').map(
          res => res.json(),
        );
        console.log(wbs);
        return wbs;
      }
    }
     
    class Matiere {
        id: number;
        name: string;
        _id:number;
     
    }
    en essayant de faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          console.log(this.matieres); //! impossible de le savoir undefined
    il met met undefined, mais this.matieres à bien été mapé .
    Pas évident de comprendre son mécanisme , j'ai essayé de l'expliquer ici

    http://profoad.education/moodle3/mod...iew.php?id=735

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Démontrer une fonction multimodale
    Par saou88 dans le forum Mathématiques
    Réponses: 0
    Dernier message: 17/10/2012, 20h21
  2. Céer son widget, fonctions map, unmap, realize, etc..
    Par Gamall dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 07/02/2011, 13h52
  3. Utilisation de la fonction map() ?
    Par Norore dans le forum Langage
    Réponses: 7
    Dernier message: 04/02/2011, 11h16
  4. fonction map pour ndarray
    Par vikki dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 24/01/2010, 13h15
  5. Explication de code avec la fonction map
    Par mlny84 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/10/2007, 13h59

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