rc5 的 primeng 问题

primeng issues with rc5

升级到 rc5 并使用新版本重新安装 primeng 后,我收到以下错误:

zone.js?1472019041780:484 未处理的 Promise 拒绝:模板解析错误:无法绑定到 'icon',因为它不是 'button' 的已知 属性 . ("ver':hovered,'ui-state-focus':focused,'ui-state-disabled':disabled}" >][icon]="icon" pButton *ngIf="showIcon" (click)="onButtonClick($event,in)" [ngClass]="): Calendar@7 :31 ;区域: ;任务:Promise.then ;值:

我尝试删除所有对日历的引用,这样我至少可以启动该应用程序并 运行,但遇到了另一个问题:

Can't bind to 'rows' since it isn't a known property of 'p-paginator'.
1. If 'p-paginator' is an Angular component and it has 'rows' input, then verify that it is part of this module.
2. If 'p-paginator' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schema' of this component to suppress this message.
 ("              <ng-content select="header"></ng-content>
            </div>
            <p-paginator [ERROR ->][rows]="rows" [first]="first" [totalRecords]="totalRecords" [pageLinkSize]="pageLinks" styleClass="ui"): DataTable@6:25
Can't bind to 'first' since it isn't a known property of 'p-paginator'.
1. If 'p-paginator' is an Angular component and it has 'first' input, then verify that it is part of this module.
2. If 'p-paginator' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schema' of this component to suppress this message.
 ("<ng-content select="header"></ng-content>
            </div>

依赖关系:

import { NgModule, ElementRef } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { RouterModule } from '@angular/router';
import { HttpModule } from '@angular/http';
import { Calendar, DataTable, Column, InputMask } from 'primeng/primeng';

您需要将所有内容作为 xModule 导入。请参阅 Primafaces' blog 以供参考。

新方法如下:

import {NgModule}      from '@angular/core';
import {InputTextModule,DataTableModule,ButtonModule,DialogModule} from 'primeng/primeng';
 
@NgModule({
  imports:      [BrowserModule,InputTextModule,DataTableModule,ButtonModule,DialogModule],
  declarations: [AppComponent],
  bootstrap:    [AppComponent],
  providers:    [CarService]
})
export class AppModule { }

编辑:让我纠正一下。我使用子模块,只有一个子模块依赖于 PrimeNg,所以我认为将依赖项导入那里就足够了。事实证明,我必须在我的 app.module.ts(我的主模块)中导入这些模块,而不是在我的子模块中。可悲的是,我不知道确切的原因。

PS.: 不知道为什么会得到'unexpected value'。您能否分享有关您的项目的更多信息?

正如我在上面的评论中所暗示的,RC5 存在一个问题,它会产生此错误。在大多数情况下,禁用最小化就足够了,或者将设置调整到构建,并使用 mangle 配置 uglify:

{ screw_ie8 : true, keep_fnames: true} or use AOT template compilation

这个问题的根源和解决方案是github.com/angular/angular/issues/10618 虽然这个修复对我不起作用,但我希望它能帮助其他开发人员。

我想补充一点,不仅你需要导入所有东西,而且 在 system.config.js 中,您需要在 packageNames 中添加 @angular/forms。同样在你的 boot 或 main 中需要更改为以下内容:

import {platformBrowserDynamic }    from '@angular/platform-browser-dynamic';
import {AppModule } from './app.module';
platformBrowserDynamic().bootstrapModule(AppModule);

我得到了使用 RC5 和 primeng 1.0.0-beta.14 的 prime DataTable