Kendo DropdownList и ng-model не работают

У меня есть выпадающий список Kendo, привязанный к ObservableArray/DataSource. Он должным образом заполняет значения из массива. Но когда я привязываю ng-модель к свойству, в раскрывающемся списке не удается выбрать значение.

HTML:

<select kendo-drop-down-list k-options="dropOptions" ng-model="user.id"></select>

JS:

var users = [
  { id: 1, name: 'A' },
  { id: 2, name: 'B' },
  { id: 3, name: 'C' },
  { id: 4, name: 'D' },
  { id: 5, name: 'E' },
  { id: 6, name: 'F' }
];

var usersDataSource = new kendo.data.ObservableArray(users);

$scope.dropOptions = {
  dataSource: usersDataSource,
  dataTextField: 'name',
  dataValueField: 'id',
  optionLabel: "Select one..."
};

$scope.welcome = "World";
$scope.user = { id: 3 }

$scope.user = { id: 3 } должен заставить раскрывающийся список выбрать C.

Вот ссылка на Plunkr: http://plnkr.co/edit/BxTqWet5sz725ZtKEKJr?p=preview

Как я могу для раскрывающегося списка сделать выбор на основе значения, присвоенного в свойстве, связанном с ng-моделью. Я также использовал k-ng-модель, но она не работает. Пожалуйста, помогите мне, что я делаю неправильно здесь. Спасибо.

Изменить: выбор в раскрывающемся списке не жестко запрограммирован. Он будет получен из базы данных.


person Ritesh    schedule 04.02.2016    source источник


Ответы (6)


Я использовал Angular 1.4.9 с Kendo v2015.3.1111. Переход на Angular 1.4.8 заставил его работать.

person Ritesh    schedule 04.02.2016
comment
У меня точно такая же проблема во время обновления AngularJs в части миграции Angular. Если я обновлю Кендо, это решит проблему. К сожалению, в данный момент я не могу понизить версию AngularJs или обновить Kendo. Вы в конце концов узнали, что с ним не так, или нашли исправление? Помимо понижения версии AngularJs. - person lawphotog; 11.02.2019

У меня есть решение, которое работает.

  <select kendo-drop-down-list
         k-options="odsSoluciones"
         k-data-text-field="'descripcion'"
         k-data-value-field="'solucionId'"
         k-value="prescDPIntercambio.solucionDPId"
         ng-model="prescDPIntercambio.solucionDPId">
 </select>


$scope.odsSoluciones = 
     dataSource: new kendo.data.DataSource({
         data: solucionesModel.data,
         }),
    };

В моем случае odsSoluciones возвращает массив с полями «solucionId» и «описание», а prescDPIntercambio.solucionDPId — это значение, которое я хочу видеть выбранным.

person Suminch    schedule 26.08.2016
comment
Благослови вас, сэр! Это так раздражало. - person Chris Knight; 16.12.2016

Значение раскрывающегося списка кендо не отражает выбор на основе ng-модели. Вместо этого он предоставляет новый атрибут: k-ng-model

В качестве простого примера взгляните на это: k-ng-model

person ashfaq.p    schedule 04.02.2016
comment
Вы проверяли демо-плункер? - person ashfaq.p; 04.02.2016
comment
Да, я проверил это вчера. - person Ritesh; 04.02.2016
comment
Попробуйте указать параметры в html, как в демонстрации, вместо использования k-параметров. - person ashfaq.p; 04.02.2016
comment
Спасибо Ашфак за ваши ответы. Почему-то Angular 1.4.9 не работал с пользовательским интерфейсом Kendo. Пробовал даже Kendo v2016, но безуспешно. Затем я попытался понизить версию Angular до более старой версии, выбор начал работать. Я собираюсь сообщить об этом в Кендо. - person Ritesh; 04.02.2016
comment
Хотя это странно. - person ashfaq.p; 04.02.2016
comment
У меня точно такая же проблема во время обновления AngularJs в части миграции Angular. Если я обновлю Кендо, это решит проблему. К сожалению, в данный момент я не могу понизить версию AngularJs или обновить Kendo. Вы в конце концов узнали, что с ним не так, или нашли исправление? Помимо понижения версии AngularJs. - person lawphotog; 11.02.2019

Просто добавьте k-value = "user.id"в шаблон.

Рабочий планкер

person Cursune    schedule 11.09.2019

Существует странная ситуация, когда я объявляю ng-модель как объект, например $scope.abc.xyz = "test" , привязка работает, тогда как если я делаю $scope.abc = "test" , привязка не работает. Не знаю, в чем проблема :)

person karthik339    schedule 15.10.2020

person    schedule
comment
Значение не фиксировано. Он будет получен из БД. Я просто использовал 3 для примера. - person Ritesh; 04.02.2016
comment
Вы можете использовать get и передать результат в значение - person Clarice; 04.02.2016
comment
Мой вопрос не в том, как установить значение. Может быть, я не ясно. Выпадающий список кендо не обновляет выбор на основе значения свойства user.id, связанного с использованием ng-модели. - person Ritesh; 04.02.2016