javascript - 下拉重置角度 ng-select 时删除无效状态
问题描述
我正在为我的角度项目使用 ng-select 插件。
我需要在更改的第一个下拉列表中重置第二个下拉列表。这是我的示例代码第一个下拉菜单
<ng-select [items]="branchModel" bindLabel="branchName" required
(change)="getPublicBankInfo($event); " name="branchName" bindValue="branchCode"
placeholder="Select Branch" [(ngModel)]="reservelocker.branchCode">
</ng-select>
第二个下拉
<ng-select [items]="lockerSizeModel" bindLabel="sizeText" required #selectDropdown
[disabled]="!reservelocker.branchCode" (change)="getLockerInfo($event);" name="sizeText"
bindValue="sizeCode" placeholder="Select Locker Size" [(ngModel)]="reservelocker.locker">
</ng-select>
第一个下拉功能
getPublicBankInfo(info) {
// reset second drop down
this.reservelocker.locker = '';
console.log(info);
}
解决方案
将 ngModel 设置为模板变量 selectDropdown 以获取 ngModel 实例。然后你可以在它上面调用 reset 方法来移除 ng-select 错误状态。
<ng-select [items]="lockerSizeModel" bindLabel="sizeText" required #selectDropdown="ngModel"
[disabled]="!reservelocker.branchCode" (change)="getLockerInfo($event);" name="sizeText"
bindValue="sizeCode" placeholder="Select Locker Size" [(ngModel)]="reservelocker.locker">
</ng-select>
将模板引用变量作为第二个参数传递给 getPublicBankInfo
<ng-select [items]="branchModel" bindLabel="branchName" required
(change)="getPublicBankInfo($event,selectDropdown); " name="branchName" bindValue="branchCode"
placeholder="Select Branch" [(ngModel)]="reservelocker.branchCode">
</ng-select>
组件.ts
getPublicBankInfo(info,ngModelRef) {
// reset second drop down
this.reservelocker.locker = '';
ngModelRef.control.reset(); //Call reset
console.log(info);
}
推荐阅读
- python - 尝试使用 .insert() 插入行时重复值
- asp.net - 如何在 Visual Studio 解决方案中查看对 app.config 或 web.config 中的键的所有引用/调用?
- c++ - 没有继承的链表
- forms - 保护 Web 表单免受垃圾邮件影响的世界惯例
- javascript - 三.js 使用 RectAreaLight 低 fps
- python - 用自定义值替换字符串并迭代所有出现
- android - 如何将 p4a 分发版转换为 apk?
- java - 验证 mongo db 单元模拟单元测试
- apache-kafka - Kafka Streams 应用程序重置工具不删除内部主题
- asp.net-mvc - 如何在回发时将对象保留在视图模型中