kendo-ui - 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>
如果删除该值并按下 Tab(组合模糊),则可以获得错误。实际上,通过在框中留下无效值,就会发生此错误。
我将在下面解释为什么我使用一些设置:
textField
并且valueField
- 在我的应用程序中,我请求复杂对象,并且所选值将为其他表单字段提供一些信息[valuePrimitive]="false"
- 选定的值是一个复杂的对象[allowCustom]="false"
- 我用它来允许控件接收不在列表中的初始值。在我的应用程序中,我使用带有空初始列表的服务器端过滤
在应用程序中使用(服务器端过滤)时,我在按下箭头按钮时也会收到此错误,但我可以通过确保初始值在值列表中(丑陋)或简单地删除按钮来消除此错误.
关于如何使这项工作的任何想法?
解决方案
根据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并让我知道它是否有帮助。
推荐阅读
- jestjs - Jest + React-testing-library - 等待一个模拟的异步函数完成
- javascript - 如何按内存限制拆分数组?
- oracle-apex - 在 oracle apex 中应用格式掩码
- html - 使用带屏蔽的重定向允许全屏嵌入视频
- flutter - json数组页面id dart如何
- c - 如何在字符串反转中写单词?
- python - 如何将两个txt文件与python进行比较?
- flutter - 颤振 - xcode11 - macOS catalina - cocoapod 安装错误
- python - 用于 Python 的快速键值磁盘存储
- android - 如何在颤动中允许浮动通知和锁定屏幕通知编程