I am trying to use PrimgNG in my angular2 app (primeng 2.0.5, Angular 2.0.x). I can get the ButtonModule and InputTextModule work but not the AutoCompleteModule.
I am getting this error as soon as I add AutoCompleteModule to the application.
An unhandled exception occurred while processing the request.
Exception: Call to Node module failed with error: Prerendering failed because of error: ReferenceError: Event is not defined
app.component.html:
<button pButton type="button" (click)="onclick()" >Click here</button>
<p-autoComplete [(ngModel)]="text" [suggestions]="results" (completeMethod)="search($event)"></p-autoComplete>
app.component.ts:
import { Component, OnInit } from '@angular/core';
import {ButtonModule, ToggleButtonModule} from 'primeng/primeng';
@Component({
selector: 'app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
})
export class AppComponent {
text: string;
results: string[];
search(event){
this.results = ['1','2','3'];
}
onclick():void{
alert("This is a test");
}
}
app.module.ts:
import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { UniversalModule } from 'angular2-universal';
import { HttpModule } from '@angular/http';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './components/app/app.component'
import {ButtonModule, AutoCompleteModule} from 'primeng/primeng';
@NgModule({
bootstrap: [AppComponent],
declarations: [
AppComponent
],
imports: [
HttpModule,
FormsModule,
RouterModule.forRoot([
{ path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: 'home', component: HomeComponent },
{ path: 'api-list', component: ApiListComponent },
{ path: 'api-add', component: ApiAddComponent },
{ path: '**', redirectTo: 'home', pathMatch: 'full' }
]),
AutoCompleteModule,
UniversalModule
]
})
export class AppModule {
}
Everything works fine if I remove AutoCompleteModule. Please help.
Just take off pre-rendering.
I found this answer a few weeks back here on stackoverflow, tried to search for it again to link it here, but didn't yield any results. If anyone finds it please link it here. Thank you
I was able to solve this by changing the asp-prerender tag in Index.cshtml page that is generated by ASP.Net Core Templates.I missed the point about ASP.Net Core templates from my question.
I changed the tag from
to
Use following
1..Loading.... 2.boot. Browser.t s or boot.client.ts file import the following import es6-shim