javascript - 无法在 Angular 中使用自动完成字段执行更改事件
问题描述
我正在使用自动完成字段来填充值。我在表达式属性中使用了 templateOptions.change 来设置其他字段的值,但我注意到只有在取消选择自动完成的值时才会调用 change 事件。当我试图从自动完成更改事件中选择值时,不会调用。
我创建了一个 stackblitz 链接来实现我的要求,我注意到更改事件仅在我们更改自动完成下拉列表的值后调用,如果它是空白的,然后我们选择任何不调用更改事件的值。我想知道是否有 onselect of dropdown 而不是 change 事件的选项。我也尝试将钩子与模板选项一起使用,但没有成功,如果有人可以提供帮助,那将很有帮助。谢谢
请找到此链接:https ://stackblitz.com/edit/angular-bf6g6m-6twrjw
第一步:
当我从自动完成下拉列表中选择第一个值时:观察是没有更改事件被调用
第二步:
现在,当我从下拉列表中选择另一个值时:观察是更改事件被调用。
解决方案
使用 formly 和 ng-prime 的自动完成更改事件无法按预期工作。我尝试使用 onSelect 效果很好,并且事件的行为符合预期。
请在下面找到以下代码,只需在使用 autocomplete、formly、primeng 和 angular 时将 change 事件替换为 onSelect。
在正式的自动完成组件中: (Ng-prime formly)
(onSelect)="to.onValueSelect(field,$event)"
在自动完成字段中使用 onSelect
fields: FormlyFieldConfig[] = [
{
key: 'Autocomplete',
type: 'autocomplete',
templateOptions: {
required: true,
label: 'Autocomplete',
placeholder: 'Placeholder',
filter: (term) => of(term ? this.filterStates(term) : states.slice()),
onValueSelect: (field, $event) => { //call the onSelect event
console.log('----->select event called')
}
},
},`
推荐阅读
- java - sonarQube 扫描错误 - 使列表的字段瞬态或可序列化
- reactjs - 在渲染方法中调用 SFC 函数有什么好处吗?
- java - java with opencv 程序未在命令提示符下运行,包 org.opencv.core 不存在
- javascript - 如何使用动态文件路径要求 json 文件
- wordpress - 如何更改.../wp-admin/...(不仅仅是登录页面)
- javascript - Magento 2:未定义时刻
- c++ - 为什么结构化绑定因 'std::tie' d 对象而失败?
- excel - 将两个“书挡”之间的多张工作表中的数据合并到一张工作表中
- android - 有什么方法可以从顶级项目 gradle 中删除“classpath 'com.google.gms:google-services:4.2.0' 依赖项
- java - 推送通知未在通知栏 Android 中显示