2017-05-30 3 views
0

Ich hoffe es geht dir gut. Trainee hier, nur mit Frontend-Entwicklung, so leid, wenn die Frage dumm ist, oder der Code sieht schrecklich aus (jede Korrektur ist sehr willkommen).Drop-Down in Datatable wird 'binged option' nicht ausgewählt [PrimeNG]

Ich habe ein Dropdown-Element in einer Datentabelle:

<p-dataTable [value]="Items"> 
    <p-column field="Destination" header="Destinos"> 
     <ng-template let-col let-item="rowData" pTemplate="body"> 
      <p-dropdown [ngModelOptions]="{standalone: true}" [(ngModel)]="item[col.field]" appendTo="body" [options]="Destinations"> 
      </p-dropdown> 
     </ng-template> 
    </p-column> 

    <!-- more columns--> 

</p-dataTable> 

Ziele werden hier geladen:

this.destinationService.getDestinations(). 
     subscribe((res: Array<Destination>) => { 
      res.forEach(element => { 
       this.Destinations.push({ label: element.Name, value: element.id }); 
      }); 
     }); 

wenn eine Absenden-Button drücken, erzeugt sie eine JSON. Und diese Vorlage "Creation" wirkt wie ein Zauber. Das gesicherte Objekt ist eine Schätzung und ein Schätzwert. Der Provider hat einen korrekten Attributwert, der eine Zahl ist, die aus dem Wert "select/option" übernommen wird, sodass ich denke, dass die Bindung hier perfekt funktioniert.

Aber wenn ich diese erwähnte Schätzung in eine "EDIT" Vorlage laden, lädt alles perfekt außer Destinations Dropdown, weil it hasn't nothing selected.

Ich meine, wenn es geschätzt wird.Provider ist 2, sollte es nicht "automatisch auswählen" -Option, deren "Wert" wäre 2? Zumindest funktioniert so ein natives Dropdown-Menü (ich habe überprüft, ob der Wert korrekt geladen wird, nur für den Fall, und das tut er auch). Außerdem glaube ich, leerer Wert als Standard ist seltsam, weil Primeng Drop-Down wählt den ersten Wert in der Dropdown-Liste standardmäßig ausgewählt. Wenn ich darauf klicke, funktioniert es perfekt. displays the options as it should do.

Also ich glaube etwas komisches passiert und ich vermisse etwas Wichtiges.

Ich weiß nicht, was zu tun ist. Vielen Dank im Voraus

Antwort

0

Mein Problem war, dass ich mit einer Eltern- und Kindkomponente arbeitete, und die "Datenquelle" von Datatable (die in der Kindkomponente war) nahm seinen Wert von der Elternkomponente durch eine Eingabe(), Problem war, dass der Service, der Destinationen aus der Datenbank geladen hat, nach der Eingabe und nicht vorher ausgeführt wurde, so dass die Vorlage beim Löschen der Destinationen als Datentabelle gerendert wurde. Ich habe das Senden von Zielen von Eltern zu Kind korrigiert, anstatt sie im Kind zu laden.

Ich hoffe, es hilft.

Verwandte Themen