Wie zu verwenden ngModel mit einem benutzerdefinierten Steuerelement in einem Formular?

Erstellte ich eine Komponente für die Handhabung von select box, jetzt wenn ich es im form-tag nach der vorgelegten form das Ergebnis der Auswahl nicht zeigen, bis in der Konsole.

Was ist das problem mit meinem code? wie kann ich dieses Problem beheben?

  • testOption: ist das array-Objekt das ich übergeben, werfen Sie die select-box mit @Input.

hier ist die select-box-Komponente:

import { Component, OnInit, Input } from '@angular/core';

@Component({
    selector: 'input-select',
    template:`
      <div class="field-select">
        <span><icon name="select-arrow" size="10"></icon></span>
        <select name="{{name}}" class="field">
          <option value="0" disabled selected>{{label}}</option>
          <option *ngFor="let option of options" [ngValue]="option.value">{{option.name}}</option>
        </select>
      </div>
    `
})
export class InputSelectComponent implements OnInit {
    @Input() label: string;
    @Input() name: string;
    @Input() options;


    //testOptions = [
    //  {value:'test',name:'test2'},
    //  {value:'test',name:'test2'}
    //];

    constructor() { }

    ngOnInit() {
      console.log(this.options);
     }

}

Verwendung in html:

<input-select label="test" name="select2" [options]="testOption"></input-select>

form html:

<form role="form" class="form" #f="ngForm" (ngSubmit)="onSubmit(f)">
    <input class="field" name="name" ngModel type="text" placeholder="n1">
    <input-select label="b2" name="select2" [options]="testObject"></input-select>
    <input class="field" name="building-type" type="text" ngModel placeholder="b3">
</form>

console log: (es gibt keine select-box-Wert)

Object {name: "test", building-type: "tset" }
Sie sprechen über testOption und testObject. Was ist der richtige name? 🙂 Überprüfen Sie, dass die erste..
der richtige name ist testOption. my bad 🙂
Zeigen Sie Ihre "Eltern" - Komponente, bitte. (Vorlage)
Es meldet undefined auf der Konsole? was meinst du mit result of selection. Ich sehe nicht ein, jeden code, drucken Sie das Ergebnis auf die Konsole. 🙂
ich aktualisiert die Frage.

InformationsquelleAutor Sajad | 2017-01-30

Schreibe einen Kommentar