javascript - 下拉菜单 从函数生成选项 - primeng

标签 javascript angular primeng

我想从函数生成下拉菜单 ( https://www.primefaces.org/primeng/#/dropdown ) 选项。

功能:

 getSelectItemsByProperty(name: string): SelectItem[] {
        let resArray : SelectItem[] =[];
        this.detailService.getOptionsByProperty(name).subscribe(x => resArray = x.map(val => {
            return {
                label: val.name,
                value: val.value
            }
        }));
        console.log(resArray);
        return resArray;
    }

HTML:

<p-dropdown [options]="getSelectItemsByProperty(name)" formControlName="value"></p-dropdown>

问题是 getSElectedItemsByProperty 被疯狂地调用。它永远不会停止调用该函数。

目标 我想要实现的是能够流行下拉列表,而不将选择项数组作为我的表单组中的控件。我希望通过表单控件名称生成下拉选项,并且下拉列表的值应映射到表单控件值。

最佳答案

我也遇到了和你一样的问题。 我正在使用 MultiSelect我使用了 onPanelShow 事件。为了初始化我的选项。

<p-multiSelect [options]="computedOptions" (onPanelShow)="onPanelShow()"></p-multiSelect>

然后在你的组件中:

export class MyComponent {
    computedOptions: SelectItem[];

    onPanelShow(name: string) {
        let resArray : SelectItem[] =[];
        this.detailService.getOptionsByProperty(name).subscribe(x =>                         resArray = x.map(val => {
            return {
                label: val.name,
                value: val.value
            }
        })); 
        this.computedOptions = resArray;
    }
}

dropdown为例,onPanelShow 事件不存在。但是,我想您应该对 onFocus 事件有相同的行为。

关于javascript - 下拉菜单 从函数生成选项 - primeng,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43762906/

相关文章:

angular - 如何在按钮标签angular2中测试routerLink

css - Bootstrap 4 带包装元素的卡片组

angular - PrimeNG 主题字体覆盖 Angular 应用程序字体

javascript - 在 html 表单中提交隐藏字段

javascript - 在 React Native 中滑动背景图像

html - 以 Angular 2 获取图像尺寸

angular - primeng下拉列表不显示

javascript - 将 Javascript 从 PHP 变量保存到文件

Javascript 文件在 Wordpress 中无法正常运行,并且在 Functions.php 中进行了正确的排队

html - angular 2 - 选项卡旁边的 primeng 添加按钮