2017-10-11 3 views
3

Ich habe Schwierigkeiten, die Werte von innerhalb der Tabelle innerhalb von td und Eingaben zu bekommen. Ich habe versucht, auf den Button zu klicken und warne ihn, aber es wird undefiniert. Wie bekomme ich die Werte aus diesen Feldern? Die Felder sind Material, Einheit und MengeWerte von td erhalten, Eingabe in Angular

html

<tr *ngFor="let addRow of row; let rowIndex = index"> 
    <td> 
    <select type="text" class="form-control" ngModel required #material> 
     <option *ngFor="let material of materials" [value]="material.id">{{ material.name }}</option> 
    </select> 
    </td> 
    <td><input type="text" class="col-md-10" placeholder="pcs, pack, bag etc..." #unit></td> 
    <td><input type="number" class="col-md-6" #quantity></td> 
    <td>10</td> 
    <td> 
    <button type="button" class="btn btn-sm btn-danger" (click)="onDeleteRow(rowIndex)"><i class="fa fa-trash-o" aria-hidden="true"></i> Remove</button> 
    </td> 
</tr> 
<button class = "btn btn-primary float-right" (click)="onCreate(material,unit,quantity)"><i class="fa fa-floppy-o" aria-hidden="true"></i> Save</button> 

ts

onCreate(material, unit, quantity){ 
    alert(material); 
    } 
+0

Sie haben loop "". für Schleifen, Material, Einheit und Menge Referenz kann mehrere Zeit –

+0

@TusharGhosh generieren. Ja, ich entferne es und es funktioniert. Aber ich brauche es Zeilen hinzuzufügen? Wie kann ich das ansprechen? –

Antwort

0

Hier ist der Code-Beispiel, das Sie eine Idee, um Ihr Problem zu lösen.

Hinweis: Seien Sie vorsichtig bei der JavaScript-Objektverweis.

// in html

<tr *ngFor="let addRow of row; let rowIndex = index"> 
    <td> 
    <select type="text" class="form-control" required #material= 'ngModel' [(ngModel)]="data[rowIndex].material"> 
     <option *ngFor="let material of materials" [value]="material.id">{{ material.name }}</option> 
    </select> 
    </td> 
    <td><input type="text" class="col-md-10" placeholder="pcs, pack, bag etc..." #unit= 'ngModel' [(ngModel)]="data[rowIndex].unit"></td> 
    <td><input type="number" class="col-md-6" #quantity= 'ngModel' [(ngModel)]="data[rowIndex].quantity"></td> 
    <td>10</td> 
    <td> 
    <button type="button" class="btn btn-sm btn-danger" (click)="onDeleteRow(rowIndex)"><i class="fa fa-trash-o" aria-hidden="true"></i> Remove</button> 
    </td> 
    <button class = "btn btn-primary float-right" (click)="onCreate(rowIndex)"><i class="fa fa-floppy-o" aria-hidden="true"></i> Save</button> 
</tr> 

// in ts

data:any = [ 
      {"material":"", "unit":"", "quantity":""} 
      ...... 
      ]; 

onCreate(rowIndex){ 
    alert(data[rowIndex]); 
    } 
+0

Wie kann ich es tun? Ich bin paramters innen onCreate() Funktion wie diese onCreate (material_id, project_id, Menge, Einheit) { this.matService.addMat (material_id, project_id, Menge, Einheit) .subscribe ( data => { Konsole setzen. Protokoll (Daten) }, Fehler => { console.log (Fehler); }); } –

+0

können Sie diesen Weg versuchen:

+0

ich bin auch verwirrt, da ich in meinem ts dies zu tun bin onCreate (material_id, project_id, Menge, Einheit) { this.matService .addMat (material_id, project_id, Menge, Einheit) .subscribe ( data => { alert ("Erfolgreich"); }, error => { console.log (error); }); } –

Verwandte Themen