primeng 下拉组件错误('p-dropdown' 不是已知元素)
primeng dropdown component error ('p-dropdown' is not a known element)
遵循指南:https://www.primefaces.org/primeng/
我已按照上述详细步骤尝试安装 PrimeNG 以与 Angular4 一起使用,但出现错误:
'p-dropdown' is not a known element:
我尝试按照其他帖子中的建议重建项目,但它对我不起作用。有什么提示吗?
以下是所有详细信息:
-- PrimeNg 安装
npm install primeng --save
-- 文件:testdropdown.component.html
<p-dropdown [options]="cities" [(ngModel)]="selectedCity"></p-dropdown>
-- 文件:testdropdown.component.ts
import { DropdownModule } from 'primeng/primeng';
import { Component, OnInit } from '@angular/core';
import { SelectItem } from 'primeng/primeng';
@Component({
selector: 'app-testdropdown',
templateUrl: './testdropdown.component.html',
styleUrls: ['./testdropdown.component.css']
})
export class TestdropdownComponent implements OnInit {
cities: SelectItem[];
selectedCity: string;
constructor() {
this.cities = [];
this.cities.push({ label: 'Select City', value: null });
this.cities.push({ label: 'New York', value: { id: 1, name: 'New York', code: 'NY' } });
this.cities.push({ label: 'Rome', value: { id: 2, name: 'Rome', code: 'RM' } });
}
ngOnInit() {
}
}
-- 错误:
VM1128:185 [CodeLive] HTTP detected: Connecting using WS
zone.js:630 Unhandled Promise rejection: Template parse errors:
Can't bind to 'options' since it isn't a known property of 'p-dropdown'.
1. If 'p-dropdown' is an Angular component and it has 'options' input, then verify that it is part of this module.
2. If 'p-dropdown' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("<p-dropdown [ERROR ->][options]="cities" [(ngModel)]="selectedCity"></p-dropdown>
"): ng:///AppModule/TestdropdownComponent.html@0:12
'p-dropdown' is not a known element:
1. If 'p-dropdown' is an Angular component, then verify that it is part of this module.
2. If 'p-dropdown' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("[ERROR ->]<p-dropdown [options]="cities" [(ngModel)]="selectedCity"></p-dropdown>
您必须在应用程序模块或声明 TestdropdownComponent
的模块的 imports
部分添加 DropdownModule
。
在声明组件的模块中导入下拉模块。
import {DropdownModule} from 'primeng/primeng';
@NgModule({
imports: [
DropdownModule
],
declarations: [TestdropdownComponent ]
})
export class myModule { }
如果此问题仍然存在,您可能需要再测试一件事,即,如果导入了 "FormsModule",如果没有导入并尝试,
import { FormsModule } from '@angular/forms';
import { DropdownModule } from 'primeng/primeng';
@NgModule({
imports: [
DropdownModule,
FormsModule
],
这应该可以解决问题。
Root module file like: app.module.ts. Added something like that.
import {DropdownModule,AccordionModule,SharedModule,
ButtonModule,
PanelModule,
RadioButtonModule,
MessagesModule,
KeyFilterModule,
FieldsetModule,
MessageModule,
CalendarModule} from 'primeng/primeng';
@NgModule({
imports: [
DropdownModule,
BrowserModule,
BrowserAnimationsModule,
FormsModule,
AccordionModule,
PanelModule,
ButtonModule,
RadioButtonModule,
TableModule,
HttpClientModule,
ReactiveFormsModule,
SharedModule,
MessagesModule,
KeyFilterModule,
FieldsetModule,
CalendarModule,
MessageModule
],
declarations: [TestdropdownComponent ]
})
export class myModule { }
遵循指南:https://www.primefaces.org/primeng/ 我已按照上述详细步骤尝试安装 PrimeNG 以与 Angular4 一起使用,但出现错误:
'p-dropdown' is not a known element:
我尝试按照其他帖子中的建议重建项目,但它对我不起作用。有什么提示吗?
以下是所有详细信息:
-- PrimeNg 安装
npm install primeng --save
-- 文件:testdropdown.component.html
<p-dropdown [options]="cities" [(ngModel)]="selectedCity"></p-dropdown>
-- 文件:testdropdown.component.ts
import { DropdownModule } from 'primeng/primeng';
import { Component, OnInit } from '@angular/core';
import { SelectItem } from 'primeng/primeng';
@Component({
selector: 'app-testdropdown',
templateUrl: './testdropdown.component.html',
styleUrls: ['./testdropdown.component.css']
})
export class TestdropdownComponent implements OnInit {
cities: SelectItem[];
selectedCity: string;
constructor() {
this.cities = [];
this.cities.push({ label: 'Select City', value: null });
this.cities.push({ label: 'New York', value: { id: 1, name: 'New York', code: 'NY' } });
this.cities.push({ label: 'Rome', value: { id: 2, name: 'Rome', code: 'RM' } });
}
ngOnInit() {
}
}
-- 错误:
VM1128:185 [CodeLive] HTTP detected: Connecting using WS
zone.js:630 Unhandled Promise rejection: Template parse errors:
Can't bind to 'options' since it isn't a known property of 'p-dropdown'.
1. If 'p-dropdown' is an Angular component and it has 'options' input, then verify that it is part of this module.
2. If 'p-dropdown' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("<p-dropdown [ERROR ->][options]="cities" [(ngModel)]="selectedCity"></p-dropdown>
"): ng:///AppModule/TestdropdownComponent.html@0:12
'p-dropdown' is not a known element:
1. If 'p-dropdown' is an Angular component, then verify that it is part of this module.
2. If 'p-dropdown' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("[ERROR ->]<p-dropdown [options]="cities" [(ngModel)]="selectedCity"></p-dropdown>
您必须在应用程序模块或声明 TestdropdownComponent
的模块的 imports
部分添加 DropdownModule
。
在声明组件的模块中导入下拉模块。
import {DropdownModule} from 'primeng/primeng';
@NgModule({
imports: [
DropdownModule
],
declarations: [TestdropdownComponent ]
})
export class myModule { }
如果此问题仍然存在,您可能需要再测试一件事,即,如果导入了 "FormsModule",如果没有导入并尝试,
import { FormsModule } from '@angular/forms';
import { DropdownModule } from 'primeng/primeng';
@NgModule({
imports: [
DropdownModule,
FormsModule
],
这应该可以解决问题。
Root module file like: app.module.ts. Added something like that.
import {DropdownModule,AccordionModule,SharedModule, ButtonModule, PanelModule, RadioButtonModule, MessagesModule, KeyFilterModule, FieldsetModule, MessageModule, CalendarModule} from 'primeng/primeng';
@NgModule({
imports: [
DropdownModule,
BrowserModule,
BrowserAnimationsModule,
FormsModule,
AccordionModule,
PanelModule,
ButtonModule,
RadioButtonModule,
TableModule,
HttpClientModule,
ReactiveFormsModule,
SharedModule,
MessagesModule,
KeyFilterModule,
FieldsetModule,
CalendarModule,
MessageModule
],
declarations: [TestdropdownComponent ]
})
export class myModule { }