【发布时间】:2017-07-04 14:23:13
【问题描述】:
Primeng 和 Angular 4 中的 p-dropdown 模块有问题。
我已经用循环中的值填充了选项:
for(let i = 1; i <= 20; i++) {
this.iterations = [... this.iterations, { label: i, value: i}]
}
我正在尝试在我的模板中使用它:
<p-dropdown [options]="iterations"></p-dropdown>
问题在于下拉菜单仅显示第一个值(在本例中为“1”)。当我检查“迭代”数组或静态设置迭代数组时,问题仍然存在。 我想我在我的模块中正确地包含了模块。 DropdownModule 是否依赖于任何其他模块?
import {DropdownModule} from 'primeng/primeng'
//编辑 我发现它可能与模块 html 部分有关。看下图
问候
【问题讨论】:
-
你有没有像
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';这样在你的 app.module.ts 中导入 BrowserAnimationsModule 。在 @ngmodule 装饰器的导入数组中添加模块。迭代数组也应该是 SelectItem 类型,其中标签不能是整数,只能是字符串。 -
@TimeTraveler 我收到一个错误:错误:BrowserModule 已加载。如果您需要从延迟加载的模块中访问常用指令,例如 NgIf 和 NgFor,请改为导入 CommonModule。
-
动画模块是primeng中某些组件必须导入的,因为这些comp使用角度的动画,这在primeng设置文档页面上有明确说明。所以你得到的错误取决于你在哪里导入 BrowserModule。检查this-link-to-question 寻求帮助。根据线程,您可能需要从所有其他地方删除 BrowserModule 导入。
-
@TimeTraveler 我认为 BrowserAnimationsModule 包含 BrowserModule 这就是我收到此错误的原因。这是否意味着我必须选择:延迟加载或工作下拉?
-
不应该是这样的。我已经使用了延迟加载以及primeng的动画组件。您可能需要检查是否在多个地方导入 BrowserModule。此外,BrowserAnimationModule 和 BrowserModule 应该只在应用程序根模块中导入一次,而不能在其他任何地方导入。你检查过我在上面评论中提供的链接吗?