Как динамически изменить сетку с помощью gridOption-enableRowselection в Angular JS - PullRequest
0 голосов
/ 28 марта 2019

Мне нужно включить и отключить rowSelection для просмотра в зависимости от некоторых условий.Проблема здесь в том, что несколько представлений используют один и тот же HTML и контроллер.Мне нужно, чтобы rowSelection был отключен для определенного представления и включен в других случаях.

Я пробовал это.1) Назначена функция для enableRowselection, которая будет возвращать логическое значение. (Не работает) 2) Пробовал и с isRowSelectable. (Не работает)

Код такой, как показано ниже. Не уверен, что он реализован правильнопуть.Я новичок в AngularJS и UI-Grid 1)

$scope.gridOptions = {
enableRowSelection: isSelectionEnabled
}
 isSelectionEnabled():boolean {
             var seletionEnabled = true;
             if (doesn't satisfy condition) {
                seletionEnabled = false;
             }
            return seletionEnabled ;
         }

2)

$scope.gridOptions = {
isRowSelectable: function() {
                 if(satisfies condition) return true; 
                return false; 
               },
}

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Я предполагаю, что вы знаете, хотите ли вы включить выбор строк при создании пользовательского интерфейса. Попробуйте что-то вроде:

$scope.gridOptions.onRegisterApi = function(gridApi) {
  $scope.gridApi = gridApi;

  $scope.gridOptions.enableRowSelection = $scope.isSelectionEnabled();
};

$scope.isSelectionEnabled = function() {
  // some logic here to determine whether to enable rowselection or not
  return true; // or false
};

Вы можете в значительной степени изменить $scope.gridOptions.enableRowSelection в любом месте после создания пользовательской сетки.

См. этот поршень для примера и / или чтобы попробовать, если это то, что вы хотите.

0 голосов
/ 28 марта 2019

Правильное свойство "enableRowSelection", попробуйте следующее:

$scope.gridOptions = {
    enableRowSelection: function () { 

     if(condition){
            return true
      } 
      return false; 
    }
}
...