0

我有一个网格,在添加、删除、删除行时可以正常工作。

现在,当我尝试添加行然后单击取消时,麻烦就来了。之后,我的整个网格元素丢失 .data('kendoGrid') (之后它返回 undefined )。我没有定义任何自定义操作。

有没有人遇到过类似的问题?

4

1 回答 1

0

我终于找到了解决方案...

所以,问题是我一直在使用这样的网格:

<div class='n-grid' kendo-grid="widget" k-options="gridOptions"></div>

但是这种使用需要额外的 div 包装器。当我将其更改为:

<div>
    <div class='n-grid' kendo-grid="widget" k-options="gridOptions"></div>
</div>

一切都很好...

我从 angular-kendo.js 的这一部分发现了这一点:

self.bind("dataBinding", function(ev) {
  ev.sender.$angular_itemsToCompile().each(function(){
    var el = $(this);
    if (el.attr(_UID_)) {
      var rowScope = angular.element(this).scope();
      // avoid destroying the widget's own scope
      // no idea why we get it, but we do.... :(
      if (rowScope && rowScope !== scope) {
        destroyScope(rowScope, el);
      }
    }
  });

在没有包装器的情况下使用时,取消行中的更改,破坏父级的范围。

希望这可以帮助 :)

于 2014-10-01T13:00:41.970 回答