#javascript #angularjs #kendo-grid #columnname
#javascript #angularjs #kendo-grid #имя_колонки
Вопрос:
Я хотел бы спросить, как динамически скрыть столбец в Kendo Grid в функции Scope Angular JS?
Я пытался сделать это с помощью этой скрипки:
http://jsfiddle.net/OnaBai/XNcmt/
Но если я пытаюсь выполнить ту же функцию в функции угловой области после ng-click:
$scope.hideColumn = function () {
console.log("Hidding");
grid.hideColumn("user_role");
};
Я получаю сообщение об ошибке:
TypeError: undefined is not a function
at Scope.$scope.hideColumn
Как я могу сделать это правильно (не только скрыть, но и заблокировать и т.д.)?
Спасибо за любые советы.
Комментарии:
1. Вы когда-нибудь находили решение этой проблемы?
2. Ваша переменная
grid
, вероятно, не определена. У вас это правильно установлено через<div kendo-grid="grid" ....
?
Ответ №1:
Если у вас есть имя сетки kendo, заданное Kendo, вы можете получить к нему доступ из $scope в вашем контроллере.
например
<div id="someId" data-kendo-grid="accessMeFromTheControllerID"
k-auto-bind="false"
k-data-source-init={... removed for brevity...}
k-columns="[
{ field: 'id', title: 'Id' },
{ field: 'columnToBeHidden', title: 'I should be hidden!' }
]"
></div>
Вы можете получить доступ к этому из контроллера и скрыть столбец с помощью:
$scope.accessMeFromTheControllerID.hideColumn('columnToBeHidden');
Если вы хотите использовать jQuery (не angular-иш, но может быть полезно знать)
$("#accessMeFromTheControllerID").data("kendoGrid").hideColumn('customerName');