2017-08-29 3 views
0

Ich erstelle eine benutzerdefinierte Datentabelle für ein Projekt mit Winkel 4, wobei Tabellenspalten und Zeilenelemente dynamisch gebunden werden. Ich habe Variablen für den Spaltennamen in der Typoskript-Datei erstellt.So laden Sie dynamisch Daten in der Tabellenzeile in Angular 4

columns = [ 
    { key: 'Username', title: 'User Name', isSortable: true }, 
    { key: 'FullName', title: 'Full Name', isSortable: true}, 
    { key: 'Email', title: 'Email', isSortable: true} 
]; 

Ich habe Tabelle mit Service-Aufruf von einer Komponente ausgefüllt.

constructor(private employeeService: EmployeeService, private router: Router) { 
    this.Employee = []; 
} 

private populateEmployee() { 

    this.employeeService.getPagedEmployees(this.query).subscribe(Result => { 
     this.Employee = <IEmployeeInterface[]>Result["data"], 
      this.query.totalItems = Result["count"] 
    }); 
} 

Dies ruft den Mitarbeiter aus der angularen Service-Funktion.

getPagedEmployees(filter): Observable<IEmployeeInterface[]> { 

    var jsonString = JSON.stringify(filter); 
    return this.http.get(this.baseUrl + 'GetEmployeeUrl').map((response: Response) => { 
     return response.json(); 
    }) 
     .catch(this.handleError); 
} 

Ich versuche, die Datentabelle in der Vorlagendatei zu binden. Hier Mitarbeiter ist Array von IEmployeeInterface

Employee: IEmployeeInterface[]; 

wo IEmployeeInterface ist

export interface IEmployeeInterface { 
    Id: number, 
    username: string, 
    fullname: string, 
    email: string 
} 

Die Tabelle, in der ich Bindungsdaten wie das ist.

{{Daten [Spalte]}} gibt einen leeren Wert zurück. wo als Spaltenkopf richtig gerendert wird. Ich habe versucht, die Methode von hier, aber es hat nicht funktioniert in Winkel 4. Dynamically loading columns and data into tables in angular 2

+1

Das sieht nicht so aus, als wäre es mit Angular verwandt, 'data [column]' enthält nur keinen Wert. Ich sehe nicht, wie die ersten 2 Codeschnipsel mit der Frage oder dem Teil vor ' 'im 3. Code in Verbindung stehen. Was wir sehen müssen, ist der Inhalt von 'Mitarbeiter' und' dcolumn'. –

+0

Entschuldigung. Ich habe die Frage korrigiert. Ich bin nicht sicher, ob ich es direkt korrigieren kann oder sollte ich bearbeiten Tags hinzufügen. Es ist "Spalten" statt "dcolumn". Ich möchte etwas wie {{data [column.key]}}, um Daten von Mitarbeiter in jeder Zeile für jede Spalte zu binden –

+0

Das sollte funktionieren, aber Ihre Frage zeigt immer noch nicht, welche Daten 'Mitarbeiter' enthält. –

Antwort

0

Sie schreiben:

<td *ngFor="let column of dcolumn"> 
     {{data[column]}} 
    </td> 

Der Code, den Sie nicht gepostet nicht dcolumn definieren. Könnte dcolumn undefiniert sein? Oder etwas anderes als ein string[]?

+0

Es ist "Spalten" statt "dcolumn". Ich möchte etwas wie {{data [column.key]}}, um Daten von Employee in jeder Zeile für jede Spalte zu binden. Ich habe die Frage aktualisiert. Entschuldigen Sie. Sogar ich habe versucht, Spaltennamen in string [] Format, aber das funktioniert auch nicht. –

Verwandte Themen