【问题标题】:Sort Array with Kendo UI Sortable and Angular使用 Kendo UI Sortable 和 Angular 对数组进行排序
【发布时间】:2016-09-14 06:09:47
【问题描述】:

我正在使用带有 Angular 和 Typescript 的 Kendo UI。我知道 Kendo UI 和 Angular 很痛苦,但我必须这样做......

视图效果很好,但是当我想访问 change-Event 中的数组并重新排序数组时,变量不存在。这似乎是另一个范围。所以在这个演示中会弹出警报:

        // 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 这样的东西可能会起作用。很遗憾,我现在无法验证。
  • 它就像一个魅力!在我的主项目中,我什至不得不做this.$angular_scope.$parent.ctrl.data,但这没关系。谢谢!

标签: angularjs typescript kendo-ui kendo-sortable


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多