Angular kendo-下拉列表值绑定 - 控制选择时更改值

Angular kendo-dropdownlist value binding - control changing value on selection

我使用 Kendo UI 作为 Angular DropDownList 我想控制该值,使其不会在选中时自动更改,但我可以手动控制它。

他们official documentation的说法如下:

Use the value property. If the value is set through the value property, you have to hook up to the valueChange event and manually update the value of the value property.

酷,除了一个小问题,就是没用,还是自动变的。

代码如下:

html

<kendo-dropdownlist
         [data]="relationTypes"
         [textField]="'display'"
         [valueField]="'order'"
         [value]="row.relation_type"
         (valueChange)="handleRelationTypeChange(row,$event)">
</kendo-dropdownlist>

ts

   public handleRelationTypeChange(row, $event) {
     this.MyService.updateRelationType($event.order).then((res) => {
            console.log(res);
            row.relation_type = $event;
        },
        (err) => {
            console.log(err);
        });
}

只有服务器returns响应成功,我才会手动更改。 问题是,如前所述,无论如何它都会自动更改。

好吧,经过多次尝试,答案似乎很简单。 可惜 site.

上没有例子

我想这会对很多其他人有所帮助,所以:

为了防止自动更改 value,我必须做的是,将值绑定从

更改为
<kendo-dropdownlist
     [data]="relationTypes"
     [textField]="'display'"
     [valueField]="'order'"
     [value]="row.relation_type"
     (valueChange)="handleRelationTypeChange(row,$event)">
</kendo-dropdownlist>

拖车绑定:

<kendo-dropdownlist
     [data]="relationTypes"
     [textField]="'display'"
     [valueField]="'order'"
     [(value)]="row.relation_type"
     (valueChange)="handleRelationTypeChange(row,$event)">
</kendo-dropdownlist>