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 :

Can't bind to 'ngForOf' since it isn't a known.


Sujet :

Angular

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut Can't bind to 'ngForOf' since it isn't a known.
    Bonsoir à tous

    Encore un souci avec mes développements. Je pense suivre toutes les règles et préconisations pour afficher une petite liste mais ca ne passe pas. J'ai cette erreur qui m’empêche de dormir...

    Can't bind to 'ngForOf' since it isn't a known...
    J'ai importé les modules préconisés

    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
    import { NgModule } from '@angular/core';
    import { HttpClientModule } from '@angular/common/http';
    import { BrowserModule } from '@angular/platform-browser';
    import { CommonModule } from '@angular/common';
     
    import { ConnectService }     from '../../mdpublic/mdhome/services/connect.service';
    import { GestcontractComponent } from '../mdadmin/gestcontract/gestcontract.component';
     
    @NgModule({
      declarations: [
        GestcontractComponent,
      ],
      imports: [
        HttpClientModule,
        BrowserModule,
        CommonModule,
      ],
     
      providers: [
        { provide: ConnectService, useValue: ConnectService },
     
        ],
    })
    export class MddetailsModule { }

    et a partir de mon composant, je remplis une liste. Elle est bien remplie car je vois le contenu dans ma console...

    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
    import { Component, OnInit } from '@angular/core';
    import { ConnectService }     from '../../../mdpublic/mdhome/services/connect.service';
    import { carinputdata, primedata } from '../../../mdpublic/mdhome/models/contract.model';
     
     
    @Component({
      selector: 'app-gestcontract',
      templateUrl: './gestcontract.component.html',
      styleUrls: ['./gestcontract.component.scss']  
    })
    export class GestcontractComponent implements OnInit {
     
      carinputdata: carinputdata[] = [];
      error = '';
      success = '';
     
      constructor(private ConnectService: ConnectService) { }
     
      ngOnInit() {
     
        this.ConnectService.readPolicies().subscribe((carinputdata: carinputdata[])=>{
          this.carinputdata = carinputdata;
          console.log(this.carinputdata);
        })
     
      }
    }
    Mais et c'est là que j'ai un souci, le template n'affiche pas le contenu de ma liste

    Code html : 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
    <div class="container text-center">
        <h4>Liste contract</h4>
        <table class="table table-striped">
          <thead>
        <tr>
          <th>ID</th>
          <th>Numéro</th>
          <th>Marque</th>
        </tr>
      </thead>
      <tbody>
        <tr *ngFor="let mydata of carinputdata[0]">
          <td>{{mydata.id}}</td>
          <td>{{mydata.numero}}</td>
          <td>{{mydata.marque}}</td>
        </tr>
        <tbody>
          </table>
      </div>

    Mon ngFor pose problème. Le HTML est-il exécuté avant le select? Non pas possible...
    Ma console m'intrigue. J'ai 2 fois l'erreur qui apparaît. Une fois avant ma liste et une fois après...

    Nom : Capture.PNG
Affichages : 4160
Taille : 13,0 Ko

    Pourriez vous m'aider s'il vous plait? Il y'a là une logique Angular qui m'échappe...

    Cordialement

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    il y a quelques connaissances à avoir quand on travaille en asynchrone.


    en asynchrone, avec des données type: any
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <tr *ngFor="let mydata of carinputdata[0]">
          <td>{{mydata?.id}}</td>
          <td>{{mydata?.numero}}</td>
          <td>{{mydata?.marque}}</td>
        </tr>

    an asynchrone, avec une simple variable
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ng-container *ngIf="maVar">{{maVar}}</ng-container>
    ou
    <div *ngIf="maVar">{{maVar}}</div>
    ou
    <span ....

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour Krakatoa,

    Je tourne la réponse dans tous les sens mais je n'arrive pas a voir la relation avec mon soucis... J'ai des données dans une table que je souhaite juste afficher dans un tableau. J'arrive à les afficher dans la console mais pas dans mon tableau... Ma situation correspond t'elle au premier cas asynchrone?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    essaye, tu verras bien

    ça donne quoi ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {{carinputdata|json}}

    ** tu peux verifier que tu as le commonModule dans app.module.ts
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    import { CommonModule } from '@angular/common';
     
    @NgModule({
      imports: [
        CommonModule
      ],

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour Krakatoa

    J'ai essayé en modifiant le code et en m'assurant que le CommonModule est importé mais ça ne marche toujours pas. Impossible d'afficher mes données.
    Je ne sais plus où chercher...

    Cordialement

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    essaye ça:

    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
     
      carinputdata: carinputdata[] = [];
      data1: any;
     
      error = '';
      success = '';
     
      constructor(private ConnectService: ConnectService) { }
     
      ngOnInit() {
        let that = this;
     
        this.ConnectService.readPolicies().subscribe((carinputdata: carinputdata[])=>{
          that.carinputdata = carinputdata;
          that.data1 = carinputdata[0];
          console.log(that.data1);
          console.log(that.carinputdata);
        })
     
      }
    }

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div *ngIf="data1">
    {{data1}}
    {{ data1|json}}
    </div>

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    J'affiche bien les données dans la console mais pas dans ma page...Incroyable ça...

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     constructor(private ConnectService: ConnectService) { }
     
      ngOnInit() {
        let that = this;
     
        this.ConnectService.readPolicies().subscribe((carinputdata: any)=>{
          that.carinputdata = carinputdata;
          that.data1 = carinputdata[0];
          console.log(that.data1);
          console.log(that.carinputdata);
        })
      }
    qu'affiche les 2 consoles.log ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    Lorsque j’exécute le code, voici ce que la console m'affiche:

    Nom : console1.PNG
Affichages : 4143
Taille : 23,8 Ko

    Je vois bien le contenu de ma table mais rien sur ma page...

    Cordialement.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    c'est impossible ! c'est un truc de OUF !!!!!!!

    je peux avoir le code de : this.ConnectService.readPolicies() ? si je peux accéder à l'url pour tester de mon coté ?
    sinon donne moi le contenu de: console.log(JSON.stringify(that.carinputdata));
    je devrais me débrouiller avec pour tester sur mon poste



    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
     
    data1: any;
    carinputdata: any;
     
    constructor(private ConnectService: ConnectService) { }
     
      ngOnInit() {
        let that = this;
     
        this.ConnectService.readPolicies().subscribe((carinputdata: any)=>{
          that.carinputdata = carinputdata;
          that.data1 = carinputdata[0];
          console.log(that.data1);
          console.log(JSON.stringify(that.carinputdata));
        })
      }
    (1) met juste ce code:
    ça donne quoi ?


    (2) ensuite met juste ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {{carinputdata[0].id}}
    ça donne quoi ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    En mettant uniquement {{data1?.id}} j'affiche bien dans ma page l'id. Incroyable... Par contre {{carinputdata[0].id}} génère une erreur mais affiche l'id...
    L'erreur affichée est:
    ERROR TypeError: Cannot read property 'id' of undefined...
    Le code du service est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    readPolicies(): Observable<carinputdata[]>{
            return this.HttpClient.get<carinputdata[]>(`${this.PHP_API_SERVER}/api/read.php`);
        }
    Le read.php est:

    Code php : 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
    <?php
     
      require 'database.php';
     
      $carinput = [];
      $sql = "SELECT id, numero, marque FROM carinputdata";
     
      if($result = mysqli_query($con,$sql))
      {
        $i = 0;
        while($row = mysqli_fetch_assoc($result))
        {
          $carinput[$i]['id']    = $row['id'];
          $carinput[$i]['numero'] = $row['numero'];
          $carinput[$i]['marque'] = $row['marque'];
          $i++;
        }
     
        echo json_encode($carinput);
      }
      else
      {
        http_response_code(404);
      }
    ?>

    Merci

  12. #12
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    si url tu ne peux pas me le filer

    je vais me debrouiller avec ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         console.log(JSON.stringify(that.carinputdata));

    essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {{carinputdata[0]?.id}}

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Bonjour Dukoid,

    Comment faire pour l'url? Je travaille avec un serveur php local, Mysql local... Avez-vous un procédé pour faire tout ça en ligne?

    En mettant {{carinputdata[0]?.id}}, j'affiche bien l'id et surtout sans erreur...

    Dès que je passe au ngFor, plus rien ne s'affiche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        <div *ngFor="let mydata of carinputdata">
            <div>{{mydata?.id}}</div>
            <div>{{mydata?.numero}}</div>
            <div>{{mydata?.marque}}</div>
        </div>
    Merci

  14. #14
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    ON AVANCE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <ng-container *ngIf="carinputdata">
      <div *ngFor="let mydata of carinputdata">
            <div>{{mydata?.id}}</div>
            <div>{{mydata?.numero}}</div>
            <div>{{mydata?.marque}}</div>
        </div>
    </ng-container>

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Krakatoa,

    Toujours pas de liste avec ce code. Et persistance du message exotique...
    Can't bind to 'ngIf' since it isn't a known property of 'ng-container'...
    Incroyable...

  16. #16
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    est ce qu'on peut avoir le resultat de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      console.log(JSON.stringify(that.carinputdata));
    on te l'a demandé plusieurs fois

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    La console affiche bien les données de l'instruction " console.log(JSON.stringify(that.carinputdata));"

    Nom : Capture.PNG
Affichages : 4048
Taille : 3,6 Ko

    Merci

  18. #18
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    tu peux copier coller stp
    parceque là avec image je vais devoir taper à la main et je suis un gros faineasse

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 34
    Points
    34
    Par défaut
    Voici la valeur de la console

    [{"id":"1","numero":"2334RE01","marque":"MAZDA"},{"id":"2","numero":"4321TR01","marque":"TOYOTA"}]

    Merci

  20. #20
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    ça fonctionne avec les données.
    tu dois avoir un problème avec ton projet, des librairies qui manquent ou je ne sais pas quoi.

    créé un nouveau projet Angular et teste juste cette partie

    ng new test1

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/12/2018, 14h17
  2. Erreur "Can't bind to local 8623 for debugger"
    Par kapac dans le forum Android
    Réponses: 0
    Dernier message: 06/11/2015, 13h12
  3. can't yp-bind: Reason: le domaine n'est pas délimité
    Par carenamina dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 16/11/2011, 23h32
  4. Réponses: 3
    Dernier message: 17/01/2011, 15h18
  5. Net::SSH::Perl Can't bind socket to port 1023: Adresse déjà utilisée
    Par sohnic dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 27/11/2006, 21h32

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