0
votes

Comment réparer "Impossible de lire le titre" Titre "de non défini"

Je suive le tutoriel de Mosh Hamedani "Angular 4: Débutant à Pro".

J'essaie de montrer le titre d'un produit sous une forme lorsque vous essayez de le modifier. Le produit est stocké dans une base de données Firebase. Cependant, je reçois cette erreur dans la console lorsque je vais sur le formulaire d'édition: xxx

Cette question avait déjà été posée ici: Comment résoudre la propriété "Titre" de "", mais j'ai essayé le Des solutions fournies et je reçois toujours la même erreur. Il s'agit d'une partie de ma forme: xxx

et ceci est le composant.ts xxx

EDIT: Je suis en train d'utiliser FireBase comme "Backend"


5 commentaires

Avez-vous essayé d'arrêter votre application, puis de redémarrer en utilisant NG Servir ? Parfois, je reçois cette erreur simplement parce que mon application ne reconnaît pas la variable que j'ai ajoutée


Bonjour, avez-vous un appel API à l'intérieur de la méthode GetCatégories dans votre service?


@Jeremylucas j'ai essayé mais rien ne change


@Ritu Get Catégories fonctionne juste bien le problème est dans les trois dernières lignes. En passant, obtenir la méthode a renvoyé cela.db.Object ('/ Products' + ProductID);


Pouvez-vous poster la sortie de cette console.Produit


3 Réponses :


0
votes

Il a une solution facile. L'erreur est affichée car lors de l'initialisation du composant HTML, le produit n'est pas prêt (comme l'appel de l'API prend un certain temps pour renvoyer les données), il est donc indéfini. Ainsi utilisez ?. Code> comme indiqué ci-dessous dans le composant HTML.


    <div class="form-group">
                <label for="title">Title</label>
                <input #title="ngModel" [(ngModel)]="product?.title" name="title" id="title" type="text" class="form-control" required>
                <div class="alert alert-danger" *ngIf="title.touched && title.invalid">
                    Title is Required.
                </div>
            </div>

    ````


0 commentaires

0
votes

Ajoutez un point d'interrogation après les produits, signifie que vous apportez le titre uniquement si l'objet du produit est disponible, c'est-à-dire qu'il est déjà défini.

<div class="form-group"> <label for="title">Title</label> <input #title="ngModel" [(ngModel)]="product?.title" name="title" id="title" type="text" class="form-control" required> <div class="alert alert-danger" *ngIf="title.touched && title.invalid"> Title is Required. </div> </div>


0 commentaires

0
votes

Envelopper les éléments qui nécessitent le modèle avec un ngif code> résout le problème. Le contenu tente de restituer avant que le modèle soit prêt.

<ng-container *ngIf="_model">
    CONTENT HERE
</ng-container>


0 commentaires