Angular kendo-привязка значения выпадающего списка — управление изменением значения при выборе

#angular #typescript #data-binding #drop-down-menu #kendo-ui-angular2

#angular #typescript #привязка данных #выпадающее меню #kendo-ui-angular2

Вопрос:

Я использую пользовательский интерфейс Kendo для выпадающего списка Angular, я хочу управлять значением, чтобы оно не менялось автоматически при выборе, но я могу управлять им вручную.

В их официальной документации говорится следующее:

Используйте свойство value. Если значение задается через свойство value, вам необходимо подключиться к событию valueChange и вручную обновить значение свойства value.

Круто, за исключением небольшой проблемы, это просто не работает, оно все равно меняется автоматически.

Вот код:

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);
        });
}
  

Только если сервер вернет успешный ответ, я изменю вручную.
Проблема, как уже упоминалось, в том, что она все равно изменяется автоматически.

Ответ №1:

Хорошо, после многих попыток ответ кажется простым. Жаль, что на сайте нет примера.

Я думаю, это поможет многим другим, поэтому:

Чтобы предотвратить автоматическое изменение 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>