未捕获的TypeError:无法读取属性' hideColumn'未定义的

时间:2016-09-20 11:37:13

标签: javascript jquery angularjs kendo-ui kendo-grid

这是我的代码,用于隐藏kendo网格中的列。

var grid = angular.element("#priceCardGrid").data("kendoGrid");
for (var i = 0; i < priceCardModalScope.priceCard.length; i++) {
    if (priceCardModalScope.priceCard[i].shouldAcceptQty == true) {
        grid.hideColumn(1);
    }
}

但它显示错误,如

  

未捕获的TypeError:无法读取属性&#39; hideColumn&#39;未定义的

2 个答案:

答案 0 :(得分:0)

在您的情况下,我认为您对angular.element()有疑问。 你应该做这样的事情(angular.element vs document.getElementById or jQuery selector with spin (busy) control):

angular.element( document.querySelector('#some-id'));

希望这有帮助。

我在处理angular和kendo组件时可以给你的建议是将它们分配给范围。例如:

<div kendo-grid="ctrl.grid" class="table"
   k-data-source="ctrl.dataSource"
   k-options="ctrl.options">
</div>

然后你可以轻松使用: scrop.grid.hideColumn();

答案 1 :(得分:0)

错误表示Grid实例(尚未存在)或您正在尝试从错误的元素中检索它。如果您在页面加载时执行提供的代码,则将其移至kendoWidgetCreatedkendoRendered处理程序。

http://docs.telerik.com/kendo-ui/AngularJS/global-events