Search code examples
typescriptangular7angular8primengprimeng-dropdowns

Primeng dropdown is not working in table-angular 8


Tried to get primeng dropdown but not working.I do not know how to do it.If anyone know please help to find a solution.

app.component.html:

 <my-tabs (selectedTabClick)="test($event)">
      <my-tab [tabTitle]="'Tab 1'"  id="tab1" #tab1>
          <app-data-table></app-data-table> 
      </my-tab>
      <my-tab tabTitle="Tab 2" id="tab2" #tab2>
      <app-provider-search></app-provider-search>
      </my-tab>
    </my-tabs>

data-table.component.html:

 <p-column field="missions"  header="Missions">

     <p-dropdown [options]="missons"></p-dropdown>

    </p-column>

Demo: https://stackblitz.com/edit/primeng-turbo-table-5e5ngc?file=app%2Fapp.component.html


Solution

  • you need to use and version of primeng compatible with angular verion , primeng has the same version number base of angular verion

    template

    <p-column field="missions"  header="Missions">
      <ng-template let-data="rowData"  pTemplate="body">
       <p-dropdown [options]="data.missions" [(ngModel)]="data.selectedValue"></p-dropdown>
      </ng-template>
    </p-column>
    

    you need to change primeng option value to be an object of label,value base of primeng acceptable options data

      ngOnInit() {
        this.interactionHistories.forEach(row => {
          if (row.missions) { 
          row.missions = row.missions.map(value => ({label:value, value}));
          row.selectedValue = row.missions[0];
          }
        });
      }
    

    demo 🚀