【问题标题】:PrimeNg p-dropdown module does not expandPrimeNg p-dropdown 模块不展开
【发布时间】: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 应该只在应用程序根模块中导入一次,而不能在其他任何地方导入。你检查过我在上面评论中提供的链接吗?

标签: angular primeng


【解决方案1】:

必须在组件中导入SelectItem

import {SelectItem} from 'primeng/primeng'

对象必须实现这个接口

<p-dropdown [options]="iterations"></p-dropdown>

其中迭代是 SelectItem 的数组

iterations: SelectItem[];

它是组件

iterations: SelectItem[];

selectedIteration: string;

ngOnInit() {
    this.iterations = [];
    for(let i = 1; i <= 20; i++) {
        this.iterations.push({ label: i.toString(), value: i.toString() });
    }
}

【讨论】:

  • 它没有帮助:(
猜你喜欢
  • 2018-08-28
  • 2018-09-15
  • 1970-01-01
  • 2018-09-19
  • 2019-11-11
  • 2016-11-01
  • 2017-12-18
  • 2020-02-17
  • 2021-01-07
相关资源
最近更新 更多