首页 > 解决方案 > Angular的Kendo UI ComboBox:如何防止Object类型错误的Expected value?

问题描述

我正在尝试使 Angular 的 Kendo ComboBox 不会因错误“防止对象类型的预期值”而崩溃:

<kendo-combobox
    formControlName="gender"
    [data]="genders"
    [textField]="'text'"
    [valueField]="'value'"
    [valuePrimitive]="false"
    [filterable]="true"
    [allowCustom]="true"
    required
>
</kendo-combobox>

StackBlitz

如果删除该值并按下 Tab(组合模糊),则可以获得错误。实际上,通过在框中留下无效值,就会发生此错误。

我将在下面解释为什么我使用一些设置:

在应用程序中使用(服务器端过滤)时,我在按下箭头按钮时也会收到此错误,但我可以通过确保初始值在值列表中(丑陋)或简单地删除按钮来消除此错误.

关于如何使这项工作的任何想法?

标签: kendo-uikendo-ui-angular2kendo-combobox

解决方案


根据Kendo UI for Angular,您必须使用valueNormalizer函数将用户实际键入的内容转换为有效对象。

public valueNormalizer = (text: Observable<string>) => text.pipe(map((text: string) => {
    return {
        value: this.genders[this.genders.length - 1].value + 1, //whatever value
        text: text
    };
}));

请检查更新的Stackblitz并让我知道它是否有帮助。


推荐阅读