asp.net核心,角度2,PrimeNG

Eug*_*tov 8 webpack server-side-rendering asp.net-core primeng angular

我使用aspnetcore-spa模板作为创建管理面板的起点.接下来,我添加PrimeNG库以使用它的组件.

不幸的是,当我将ButtonModule导入到app.module.ts并刷新时,我收到错误'Event is undefined'.我无法弄清楚几天的原因是什么,所以有人可以帮助我吗?

UPDATE

  • 所以首先我用它生成存根 yo aspnetcore-spa
  • 下一个 npm install font-awesome primeng --save
  • 然后我添加font-awesome和PrimeNG css文件 webpack.config.vendor.js

     vendor: [
        '@angular/common',
        '@angular/compiler',
        '@angular/core',
        '@angular/http',
        '@angular/platform-browser',
        '@angular/platform-browser-dynamic',
        '@angular/router',
        '@angular/platform-server',
        'angular2-universal',
        'angular2-universal-polyfills',
        'bootstrap',
        'bootstrap/dist/css/bootstrap.css',
        'es6-shim',
        'es6-promise',
        'event-source-polyfill',
        'jquery',
        'zone.js',            
        'font-awesome/css/font-awesome.css',
        'primeng/resources/themes/sunny/theme.css',
        'primeng/resources/primeng.css'
    ]
    
    Run Code Online (Sandbox Code Playgroud)
  • 重建供应商依赖项 webpack --config webpack.config.vendor.js

  • 然后我将ButtonModule导入app.module.ts

现在如果我启动应用程序,我会得到例外 错误页面:ReferenceError:未定义事件

这个代码片段的例外情况

 __decorate([
    core_1.HostListener('mouseenter', ['$event']), 
    __metadata('design:type', Function), 
    __metadata('design:paramtypes', [Event]), 
    __metadata('design:returntype', void 0)
Run Code Online (Sandbox Code Playgroud)

更新2

我发现问题出在服务器端渲染中,所以我删除了它.它适用于我,但如果不转向服务器端渲染,如何解决这个问题仍然很有趣.

小智 3

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

<app>Loading...</app>
Run Code Online (Sandbox Code Playgroud)

您需要从服务器端的index.cshtml 禁用预渲染。

改变

<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>
Run Code Online (Sandbox Code Playgroud)

<app>Loading...</app>
Run Code Online (Sandbox Code Playgroud)