0

NODE Version: 8.12.0 Angular Version: 7.3.4 PrimeNG Version : 7.0.0

I am using dropdown feature of PrimeNG's autocomplete component. It only loads the dropdown for the first time same nothing happens after words it is the issue with autocomplete feature function My code looks like :

<p-autoComplete [(ngModel)]="selectedCompany"  styleClass="smlldropdwn" [suggestions]="companySuggestions" (completeMethod)="searchCompanies($event)" field="Name" 
                                       (onSelect)="getTagsList()" minLength ="0" [dropdown]="true" (onDropdownClick)="dropCompanies($event)" [size]="20"  spellcheck="false"> 
                                           <ng-template let-selectedCompany pTemplate="item">
                                               <div>
                                                   <div style=" text-transform: capitalize;">{{selectedCompany.Name}}</div>
                                               </div>
                                           </ng-template>
                                       </p-autoComplete>



public ManagementCompanies = [];
  public companySuggestions = [];
  searchCompanies(event) {
    if(event.originalEvent.type != "click")
    {
      if(event.query == "" || event.query == null){
          setTimeout(() => {
           this.companySuggestions = this.ManagementCompanies;
        }, 100);
      }else{
       var suggestions= [];
        this.companySuggestions = [];
        for (var i=0; i < this.ManagementCompanies.length; i++) {
          if (this.ManagementCompanies[i].Name.toLowerCase().indexOf(event.query.toLowerCase()) !== -1){
              suggestions.push(this.ManagementCompanies[i]);
          }
      }    
      this.companySuggestions = suggestions;

      }
    }     
  }

  dropCompanies(event) {
    if(event.originalEvent.type == "click")
    {
      var suggestions= [];
      var companySuggestions = [];
      suggestions = this.ManagementCompanies;
     setTimeout(() => {
        this.companySuggestions = suggestions;
      }, 100);
    }
  }

My app.module.ts looks like:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import {HttpClientModule} from '@angular/common/http';
import { RouterModule, Routes} from '@angular/router';
import { NgIdleKeepaliveModule } from '@ng-idle/keepalive'; // used for session timeout
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // used for dropdowns

import { AppComponent } from './app.component';
import { WebloginComponent } from './components/weblogin/weblogin.component';
import { MlandingpageComponent } from './components/mlandingpage/mlandingpage.component';

import { AuthGuard } from './guards/auth.guard';

import { AuthService } from './services/auth.service';
import { UseraccessdataService } from './services/useraccessdata.service';

import {DialogModule} from 'primeng/primeng';
import {CalendarModule} from 'primeng/primeng';
import {AutoCompleteModule} from 'primeng/autocomplete';

const appRoutes: Routes = [
  {path:'',component: WebloginComponent},
  {path:'weblogin',component: WebloginComponent},
  {path:'landingpage',component: MlandingpageComponent},
  {path:'**',component: WebloginComponent}
]
@NgModule({
  declarations: [
    AppComponent,
    WebloginComponent,
    MlandingpageComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpClientModule,
    BrowserAnimationsModule,
    RouterModule.forRoot(appRoutes), //, {useHash: true}
    CalendarModule,
    DialogModule,
    AutoCompleteModule,
    NgIdleKeepaliveModule.forRoot()
  ],
  providers: [AuthService,UseraccessdataService,AuthGuard],
  bootstrap: [AppComponent],
  exports: [RouterModule]
})
export class AppModule { }
Nomi Khurram
  • 101
  • 1
  • 11

1 Answers1

0

Not sure where is the issue with code. I have just tried to implement primeNG autocompelete component and it works. check the stackblitz link

Abhinav Kumar
  • 2,883
  • 1
  • 17
  • 30