В моей сетке 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>'}
],
}