AngularJS установить видимость столбца после авторизации пользователя при загрузке страницы - PullRequest
0 голосов
/ 29 апреля 2020

В моей сетке Angularjs у меня есть имя столбца ' Update ', которое можно использовать для обновления любых строк в сетке. Я хочу проверить, авторизован ли пользователь для внесения изменений в сетку, и на основании этого я хочу показать или скрыть столбец Обновление . Я добавил функцию checkUserAuthorization () в $ window.onload = function () {} . Я хочу вызвать функцию для настройки видимости столбца в качестве обратного вызова в моей функции $ window.onload. Это потому, что я хочу установить видимость столбца на основе ответа от функции checkUserAuthorization .

Мой вопрос: -

Может кто-нибудь помогите мне, как я могу вызвать gridApi.core.registerColumnsProcessor (setVisibilityColumn) в качестве обратного вызова? Какую функцию я должен добавить в callbackFunction в $ window.onload = function ()?

Кроме того, я был бы рад узнать, есть ли другой способ сделать это. Заранее спасибо!

Мой код:

    app.controller('HomeCtrl', ['$scope',  '$http', $rootScope,'$window', function ($scope, 
        $rootScope, $http, $window)

                {
                    $scope.enableUpdate = false;

                    $window.onload = function() {
                        $scope.checkUserAuthorization(callbackFunction);
                    }

                    $scope.checkUserAuthorization = function (callback) {

                    $http({
                        method: 'POST',
                        url: 'checkUserAuthorization',
                        data: {info: $scope.info}
                        }).then (function (response)
                        {
                            if (response.data == 'Authorized')
                            {

                              $scope.enableUpdate = true;
                            }
                            else
                            {
                            console.log("hidden")
                            $scope.enableUpdate = false;

                            }

                            callback();
                        })

                    }
     })

    $scope.gridOptions = {
                        onRegisterApi: function (gridApi) {
                            gridApi.core.registerColumnsProcessor(setVisibilityColumn);
                            $scope.gridApi = gridApi;

                            function setVisibilityColumn(columns){

                                columns.forEach(function(column){
                                     if(column.displayName=='Update')

                                        {

                                        column.visible=$scope.enableUpdate;

                                        }


                                 })

                                return columns;
                            }
    },

              columnDefs: [

                  { name:' ', displayName: 'Update', cellTemplate: '<div><button ng- 
                   model="row.entity.Update"  
                   ng- click="grid.appScope.updateRow(row.entity)">Update Row</button> 
                  </div>'}


                ],
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...