Kendo Grid Как скрыть столбец в функции угловой области?

#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');