0
votes

Utilisation de réactifsforms, comment définir la valeur dans HTML angulaire 6

J'essaie de définir une valeur sur mon HTML. Comment puis-je y parvenir? J'utilise des formes réactives sur mon dossier et j'ai déjà essayé [valeur] = "COURSEMODules.cours.ID" code> dans mon HTML mais il ne semble pas fonctionner. Il ne la récupère pas lorsque je console.log () code> it.

composant.ts strong> p> xxx pré>

HTML STRAND> P>

<form [formGroup]="moduleForm" (ngSubmit)="saveModuleForm()">

    <div class="modal-body m-3">

        <div class="form-group">
            <label class="form-label">Class ID</label>
            <input formControlName="class_id" type="text" 
                   class="form-control"
                   placeholder="Class ID">
        </div>
        <div class="form-group">
            <label class="form-label">Module Title</label>
            <input formControlName="coursemodule_title" type="text" 
                   class="form-control" 
                   placeholder="Module Title">
        </div>
        <div class="form-group">
            <label class="form-label">Course ID</label>
            <input formControlName="coursemodule_course_id" type="text" 
                   class="form-control"
                   [value]="coursemodules.course.id">
        </div>

    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="submit" class="btn btn-success">Save changes</button>
    </div>
</form>


1 commentaires

La première chose que vous faites est d'attribuer un tableau vide Coursemodules , puis l'accédez comme si vous faites un objet. Alors que JS le permettra, ce n'est pas comment vous devez travailler avec des tableaux.


3 Réponses :


1
votes

Vous pouvez utiliser formname.setvalue ({})


0 commentaires

0
votes

Je vous recommande de supprimer le [valeur] = "COURSEMODules.cours.ID" code> car il ne fonctionnera pas avec une forme réactive. Cela pourrait montrer sous la forme, mais une forme réactive maintient son propre état / valeurs pour une forme et en utilisant [valeur] code> vous contournez cela. Si vous souhaitez attribuer une valeur initiale à un champ de formulaire, vous devrez le faire dans le contrôleur et non dans le modèle.

ngOnInit() {
    this.moduleForm.get('coursemodule_course_id').setValue(this.coursemodules.course.id)
}


0 commentaires

3
votes

Si vous savez CODE> COURSEMODULES CODE> sera prêt sur Oninit CODE> Vous pouvez le faire:

@Input() coursemodules: CourseModule[] = []


4 commentaires

Ça marche! Mais je reçois cette erreur TypeError: impossible de lire la propriété 'ID' de non définie sur ma console. Comment résoudre ce problème?


Cela signifie que vous obtenez l'erreur de typeError que ceci.coursemodules [0]. Course (ou quoi que ce soit que vous essayez de faire .Id on) est indéfini.


Ceci est mes modèles de cours: EXPORT INTERFACE COURS {ID: Number; COURSECODE: String; COURSENAME: String; CourseDescription: chaîne; cours_created_by: chaîne; Course_Date_Créré: date; cours_last_modified: date; } . Ceci est Mes Coursemodule Modèles: Import {parcours} de './course'; Cours d'interface d'exportationModule {id: numéro; class_id: chaîne; Coursemodule_title: chaîne; coursemodule_created_by: numéro; Cours: {[Key: String]: Cours}} Mais maintenant, il disait que la propriété "cours" n'existe pas sur Type Coursemodule: []


Il peut être intéressant de demander une question distincte à titre dossier, mais je vous recommande la journalisation Coursemodules avant l'erreur de voir ce que vous pouvez accéder et s'il est défini et / ou à l'aide d'un Type de jeu