【问题标题】:Making a p-dropdown editable makes it display [object Object]使 p-dropdown 可编辑使其显示 [object Object]
【发布时间】:2021-02-11 11:30:22
【问题描述】:

我有一个 Angular Web 应用程序,我需要在其中有一个可编辑的 p-dropdown。

只要我从这里改变它......

<p-dropdown [options]="myOptionsForMyForm" optionLabel="name" appendTo="body"></p-dropdown>

到这个...

<p-dropdown [options]="myOptionsForMyForm" optionLabel="name" appendTo="body"   editable="true"></p-dropdown>

p-dropdown 变得可编辑 - 这很好。

但是,当页面最初加载时,它开始显示 [object Object] 而不是下拉列表中的“name”值。

填充 p-dropdown 的类如下所示:

 export class MyClass {
    name: string;
    displayOrder: number;
 }

显然,让它可编辑是让它在加载时显示整个 MyClass 对象,而不仅仅是显示名称值。

我发现我可以通过在启动时强制它来解决这个问题。

基本上我改变了这个......

this.myForm.setValue({
  'myOption': MyClass
});

到这个...

this.myForm.setValue({
  'myOption': MyClass.name
});

但是当它认为它正在获取整个类并且它只获取一个字符串时,这会在其他地方搞砸。

如果它是可编辑的,我基本上必须在让 p-dropdown 正确显示但行为不正确,或者让它行为正确但在初始加载时显示不正确的 [object Object] 值之间做出选择。

有什么建议吗?

非常感谢

【问题讨论】:

    标签: javascript html angularjs angular


    【解决方案1】:

    尝试添加 displayProperty = "name"

    <p-dropdown [options]="myOptionsForMyForm"  displayProperty = "name"  optionLabel="name" appendTo="body"   editable="true" ></p-dropdown>
    

    【讨论】:

    • 是的,仍然做同样的事情。一旦它变得可编辑,它就会将其转换为简单的字符串而不是类。不过谢谢 - 我很感激!
    • 其实你的建议是对的;它解决了这个问题。后来我的应用程序搞砸了。谢谢
    猜你喜欢
    • 2019-01-02
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多