使用 Kendo UI 可排序和 Angular 对数组进行排序

Sort Array with Kendo UI Sortable and Angular

我正在使用 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

正如 Philipp 评论的那样,更改事件在另一个上下文中。使用 this.$angular_scope.ctrl.data 我可以访问控制器范围和数组。不是很漂亮,但是很管用。