использование данных источника данных kendo-ui с несколькими выпадающими виджетами

Я хочу использовать данные источника данных с несколькими выпадающими списками, если я использую общий источник данных, который делает запросы ajax столько же, сколько выпадающих списков на сервер. мне нужен 1 запрос ajax и использовать эти данные для заполнения всех раскрывающихся списков. этот код дает мне ildata не определено..

Спасибо за помощь.

пример кода

var ilDataSource= new kendo.data.DataSource({
  transport: {
    read:  {
      url: "{{ url('ajax/ilList') }}",
      dataType: "json" 
    }
  }
});
ilDataSource.fetch(function(){
  var ildata = ilDataSource.data();
});

var iller = $("#iller").kendoDropDownList({
  placeholder: "İl Seçiniz",
  dataSource : {
    data:  ildata
  },
  dataTextField: "il",
  dataValueField: "id"
}).data("kendoDropDownList");

Я могу получить элементы данных в области функций, но не могу попасть в общую область.

   ilDataSource.fetch(function() { 
   ildata = ilDataSource.data().toJSON();
   console.log(ildata); }); 

person Dale En Dol    schedule 20.07.2015    source источник


Ответы (1)


ilDataSource.fetch(function(){
  var ildata = ilDataSource.data();
});

Это определяет локальную переменную ildata, связанную с анонимной функцией.

dataSource : {
  data:  ildata
},

таким образом, на данный момент нет переменной/свойства ildata.

Вам нужно объявить ildata в общей области для двух вариантов использования:

var ildata;
ilDataSource.fetch(function(){
  ildata = ilDataSource.data();
});

var iller = $("#iller").kendoDropDownList({
  placeholder: "İl Seçiniz",
  dataSource : {
    data:  ildata
  },
  dataTextField: "il",
  dataValueField: "id"
}).data("kendoDropDownList");

Другой вопрос, сможет ли Кендо справиться с повторным использованием одного источника данных.

person Richard    schedule 20.07.2015
comment
ilDataSource.fetch(function() { ildata = ilDataSource.data().toJSON(); console.log(ildata); }); Я вижу элементы данных в консоли. Как я могу выйти из функции выборки? - person Dale En Dol; 20.07.2015
comment
@EfeEngin Поместите это в новый вопрос (и код в комментариях практически невозможно прочитать). - person Richard; 20.07.2015
comment
@EfeEngin Итак, это какой-то код, но что в нем не так? Когда вы выполняете отладчик, изменяется ли значение ildata данных? Учитывали ли вы, что событие fetch произойдет после того, как вы инициализируете раскрывающийся список: вам нужно обновить раскрывающийся список, чтобы получить данные. - person Richard; 20.07.2015
comment
после инициализации источника данных и функции извлечения, когда я console.log, я получаю неопределенное значение. да, когда в функции выборки я могу получить данные в других областях, я получаю неопределенное значение. - person Dale En Dol; 20.07.2015
comment
@EfeEngin Пожалуйста, перепишите на английском языке, указав, на что вы ссылаетесь: когда я console.log, я получаю undefined, это бессмысленно - person Richard; 20.07.2015
comment
когда я ввожу переменную в консоль chrome. если я нахожусь в области выборки функции, я вижу объект элементов данных. иначе не определено. - person Dale En Dol; 20.07.2015
comment
@EfeEngin Пожалуйста, перечитайте третье предложение моего второго комментария. Выборка вызывается позже, чем инициализируется выпадающий список. Вам нужно принудительно перезагрузить $("#iller"). - person Richard; 20.07.2015