Я использую Kendo UI с Angular и Typescript. Я знаю, что Kendo UI и Angular - это боль, но я должен сделать это так...
Представление прекрасно работает, но когда я хочу получить доступ к массиву в событии изменения и изменить порядок массива, переменная не существует. Кажется, это другая область применения. Итак, в этой демонстрации появится предупреждение:
// Change Event
changed(e: kendo.ui.SortableEndEvent) {
console.log(e);
console.info(this.data);
// For Demo
if(this.data == undefined){
alert("Can not access Data Array");
return;
}
// swap
var oldElement = this.data[e.oldIndex];
this.data[e.oldIndex] = this.data[e.newIndex];
this.data[e.newIndex] = oldElement;
}
data = [
{ value: "Val 1" },
{ value: "Val 2"},
{ value: "Value 3"},
{ value: "Value 4"}
];
Есть ли обходной путь, чтобы я мог получить доступ к массиву?
У меня есть пример: http://codepen.io/anon/pen/ozbRJA?editors =1010а>
change
, скорее всего, вызывается в контексте виджетаSortable
. Что-то вродеthis.$angular_scope.ctrl.data
может сработать. Я не могу проверить это прямо сейчас, к сожалению. - person Philipp   schedule 14.09.2016this.$angular_scope.$parent.ctrl.data
, но ничего страшного. Благодарю вас! - person webdude   schedule 14.09.2016