Я пытаюсь выполнить выделенные элементы из 2 сеток в массив для дальнейшей обработки, но я не хочу влиять на какое-либо изменение в любом источнике данных, и это доказывает проблематичным, поскольку первый источник данных, кажется (после CONCAT) содержат элементы, я достаю из первых ...Объединение данных из источников данных Kendo в новый массив
var allItems = JSLINQ(grid1.data("kendoGrid").dataSource.data())
.Concat(grid2.data("kendoGrid").dataSource.data())
.ToArray();
исходный код для функции Concat в JSLINQ делает это ...
Concat: function (array) {
var arr = array.items || array;
return new JSLINQ(this.items.concat(arr));
}
this.items - это то, что я могу сказать значение «grid1.data (« kendoGrid »). DataSource.dat a() " , и я пытаюсь построить новый массив с элементами в" grid2.data ("kendoGrid"). dataSource.data() ", который затем я намерен фильтровать на основе критериев выбора.
есть ли у кого-нибудь опыт работы с этим/а значит сказать: «Я хочу, чтобы копия элемента данных из источника, который не подключен к источнику»?
ОБНОВЛЕНИЕ: Базовая функциональность здесь основана на наличии стандартного массива JS, кажется, что kendo возвращает наблюдаемый объект массива (специфичный для kendo и отсутствующий функция concat).
Реализация выше результатов в виде исключения на Concat вызова (потому что он не существует), поэтому я переписал функцию, чтобы что-то вроде этого ...
Concat: function (array) {
//var arr = array.items || array;
//return new JSLINQ(this.items.concat(arr));
var retVal = new Array();
for (var i = 0; i < this.items.length; i++) {
var clone = JSON.parse(JSON.stringify(this.items[i]));
retVal.push(clone);
}
for (var i = 0; i < array.length; i++) {
var clone = JSON.parse(JSON.stringify(array[i]));
this.items.push(clone);
}
return new JSLINQ(retVal);
},
Это приводит к дубликата проблемы я упомянутое выше.
Так что кажется, что ошибка, которую я здесь имею, имеет отношение к наблюдаемому массиву, но я не знаю, как получить «отредактированный элемент»/«массив» из источника данных.
toJSON() работает на более сложных наблюдаемых объектов, а также, вырезают все методы и события, чтобы вернуть новый не -обслуживаемый объект. Другим примером использования является клонирование наблюдаемого путем вызова функцииJSON() и подачи результата в конструктор нового. – NigelK