这是我的代码,用于隐藏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;未定义的
答案 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实例(尚未存在)或您正在尝试从错误的元素中检索它。如果您在页面加载时执行提供的代码,则将其移至kendoWidgetCreated
或kendoRendered
处理程序。