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

做~自己de王妃 提交于 2019-12-02 05:43:04

问题


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.


回答1:


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>



回答2:


Just take off pre-rendering.

<app>Loading...</app>

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




回答3:


Use following

1..Loading.... 2.boot. Browser.t s or boot.client.ts file import the following import es6-shim



来源:https://stackoverflow.com/questions/43442770/prerendering-failed-because-of-error-referenceerror-event-is-not-defined-with

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!