Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prerendering failed because of error: ReferenceError: Event is not defined with PrimeNG AutoComplete

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.

like image 842
user3731783 Avatar asked Jan 30 '26 02:01

user3731783


1 Answers

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

<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>

to

<app asp-ng2-prerender-module="ClientApp/dist/main-server">Loading...</app>
like image 150
user3731783 Avatar answered Jan 31 '26 17:01

user3731783



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!