我想更改下拉列表值选择的控件。我想停止下拉列表中的选定值更改。
我在它的触发valueChange事件上有剑道下拉列表。
<kendo-dropdownlist #dropdownlist required [data]="responseTypes"
[defaultItem]="{responseTypeID: null, responseTypeName: 'Select Response Type'}"
[textField]="'responseTypeName'"
[valueField]="'responseTypeID'"
name="responseTypeId"
[(ngModel)]="selectedResponseType"
(valueChange)="responseTypeChange($event)"
#responseTypeIdVar="ngModel" class="form-control" style="width:180px;">
</kendo-dropdownlist>
答案 0 :(得分:0)
这不是最佳答案,我希望您会找到一个更好的答案,但是它是有效的。
绑定:
<kendo-dropdownlist [value]="selectedVal"
(valueChange)="valueChange($event)">
valueChange()代码:
public valueChange(value: any): void {
let valToShow = this.selectedVal;
this.newVal = value;
setTimeout(() => {
this.selectedVal = "changeToSomethingOther";
}, 1);
setTimeout(() => {
this.selectedVal = valToShow;
}, 1);
this.open('dialog');
this.log('valueChange', value);
}
我正在做的是将绑定值更改为其他值,然后又恢复为旧值,但是您必须在setTimeOut中执行它以触发更改检测。
答案 1 :(得分:0)
这是我从剑道团队使用 ChangeDetectorRef 获得的一种解决方案。在重新分配 this.value 之前,先调用 detectChanges 。 valueChange事件是无法避免的,您必须根据需要手动重置组件的值