Primeng проблемы с rc5

После обновления до rc5 и переустановки Primeng с новой версией я получаю следующую ошибку:

zone.js? 1472019041780: 484 Отклонение необработанного обещания: ошибки синтаксического анализа шаблона: невозможно выполнить привязку к «значку», поскольку это неизвестное свойство «кнопки». ("ver ': hovered,' ui-state-focus ': focus,' ui-state-disabled ': disabled}">] [icon] = "icon" pButton * ngIf = "showIcon" (click) = "onButtonClick ($ event, in) "[ngClass] ="): Календарь @ 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';

person Ahuva    schedule 24.08.2016    source источник
comment
переупорядочено и отредактировано минификация, как предлагается здесь github.com/angular/angular/issues/10618, и теперь вы получите ту же ошибку на другом объекте: zone.js?1472029134433:484 Unhandled Promise rejection: Template parse errors: Can't bind to 'showItBootstrap' since it isn't a known property of 'a'. ("k]="['/about']">ABOUT</a>   -  person Ahuva    schedule 24.08.2016


Ответы (3)


Вам нужно импортировать все как xModule. См. Справку в блоге Primafaces.

Новый метод заключается в следующем:

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: Не знаю, почему вы получаете «неожиданное значение». Не могли бы вы поделиться дополнительной информацией о своем проекте?

person Bubesz90    schedule 24.08.2016
comment
Ссылки на потенциальные решения всегда приветствуются, но, пожалуйста, добавьте некоторые детали для будущих посетителей, если ссылка больше не доступна. - person Nikolay Mihaylov; 24.08.2016
comment
Благодарю. получил неожиданное значение 'xModule', объявленное модулем 'AppModule' (…) - person Ahuva; 24.08.2016
comment
по-видимому, это известная ошибка, и я получаю ее для нескольких пакетов с 3-мя частями. но ни один из предложенных «обходных путей» не помог. см. github.com/angular/angular/issues/10618 - person Ahuva; 24.08.2016
comment
Может быть это будет полезно для других. ›› Что означает «Невозможно привязать к x», поскольку это не известное свойство «y»? Эта ошибка обычно означает, что либо вы не объявили директиву x, либо не импортировали модуль, которому принадлежит x. - person Bubesz90; 01.09.2016

Хочу добавить, что не только нужно все импортировать, но и в system.config.js нужно добавить @angular/forms в packageNames. Также в вашей загрузке или main необходимо изменить на следующее:

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

У меня есть Prime DataTable, работающий с RC5 и primeng 1.0.0-beta.14.

person Nonik    schedule 12.09.2016

Как я намекал в комментариях выше, есть проблема с RC5, которая вызывает эту ошибку. В большинстве случаев достаточно отключить минимизацию, либо скорректировать настройки сборки, и настроить uglify с mangle:

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

Источник этой проблемы и решение: github.com/angular/angular/issues/10618 У меня это исправление не сработало, но я надеюсь, что оно поможет другим разработчикам.

person Ahuva    schedule 25.08.2016