Проблемы рендеринга пользовательского интерфейса AngularJS с несколькими сетками на странице

0

У меня есть страницы, которые в настоящее время работают с четырьмя сетками. Основной сетью, загруженной страницей, являются пользователи, а затем еще 3 сетки загружаются в Modal каждый на своей собственной вкладке. Проблема, с которой я столкнулась, заключается в том, что когда я добавил 4-й, 3-й в модальном режиме, остальные два или последние не будут отображаться. Я получаю схему сетки, но никаких данных. Это происходит случайным образом каждый раз, когда я загружаю модальный.

мои gridOptions выглядят так:

' $scope.gridOptionsAdd = {
    enableColumnResizing: true,
    enableSorting: true,
    data: $scope.newAdd,
    columnDefs: [
      {name: 'Address Type', field: 'addressTypeDescription'},
      {name: 'Data', field: 'addressData'},
      {name: 'Primary', field: 'primaryYn'},
      {name: 'Private', field: 'privateYn'},
      {name: 'Remove', cellTemplate: ' ' +
        '<button type="button" class="usrView btn btn-danger btn-sm" ng-click="grid.appScope.groupRemove(row.entity.id)">' +
        '<div class="fa fa-trash" data-toggle="tooltip" data-pacement="bottom" title="View User"></div>' +
        '</button>'
      }
    ],
    onRegisterApi: (gridApi) ->
      $scope.gridApiAdd = gridApi
      $interval( () ->
        $scope.gridApi.core.handleWindowResize()
      , 500, 10)
  }'

Каждая из трех сетки является одним и тем же кодом, за исключением третьей переменной в $interval; это 10, 18 и 26. Модальный код:

' #open edit user modal
  $scope.userEdit = (id) ->
    $scope.userId = id
    $modalInstance = $uibModal.open ({
      animation: $scope.animationsEnabled,
      templateUrl: 'userEditModal.html',
      controller: 'editUserInCtrl',
      keyboard: true,
      size: 'lg',
      scope: $scope,
      resolve: {
        data: () ->
          return  EntryUsr.get({id: id }).$promise
        ,
        address: () ->
          return EntryAdd.query({user_id: id}).$promise
        ,
        addType: () ->
          return EntryAddType.query().$promise
        ,
        usrPosition: () ->
          return EntryPos.query().$promise
      }
    })
    $scope.updateGrpTable()
    $scope.updateRoleTable()
    $scope.updateAddTable()'

Последние 3 вызова вызывают группу пользователей, параметры безопасности и адрес и записывают их в сетки; $scope.gridOptionsAdd.data = data.

Сетки задаются в HTML как:

 %div.grid#grid3{'ui-grid'=>'gridOptionsRole'}

Каждая сетка имеет свой собственный идентификатор и относится к другому набору gridOption

Я ничего не получаю в своей консоли, за исключением 3 ошибок, компиляющих, что он может читать свойство 'core'

angular.self-a3680ff….js?body=1:13643 TypeError: Cannot read property 'core' of undefined
    at user.self-2a6c9f3….js?body=1:200
    at callback (angular.self-a3680ff….js?body=1:12457)
    at Scope.$eval (angular.self-a3680ff….js?body=1:17379)
    at Scope.$digest (angular.self-a3680ff….js?body=1:17192)
    at Scope.$apply (angular.self-a3680ff….js?body=1:17487)
    at tick (angular.self-a3680ff….js?body=1:12447)

Большое спасибо.

Теги:
ui-grid

1 ответ

0
Лучший ответ

Вопрос, который я имел, связан с этим билетом 5151. Поскольку решетки, где в модальном режиме была проблема с Angulars, показывают функцию для решения этой проблемы, вызовы gridOptions меняют на это:

$scope.gridOptionsAdd = {
    enableColumnResizing: true,
    enableSorting: true,
    data: $scope.newAdd,
    columnDefs: [
      {name: 'Address Type', field: 'addressTypeDescription'},
      {name: 'Data', field: 'addressData'},
      {name: 'Primary', field: 'primaryYn'},
      {name: 'Private', field: 'privateYn'},
      {name: 'Remove', cellTemplate: ' ' +
        '<button type="button" class="usrView btn btn-danger btn-sm" ng-click="grid.appScope.groupRemove(row.entity.id)">' +
        '<div class="fa fa-trash" data-toggle="tooltip" data-pacement="bottom" title="View User"></div>' +
        '</button>'
      }
    ]
  }

в моем файле ui.grid.autoResize добавлен ui.grid.autoResize:

angular.module('myApp', [
                            "ngResource",
                            "ui.bootstrap",
                            "ui.grid",
                            "ngFileUpload",
                            "ui.grid.autoResize"
                        ]);

Шаблоны HAML Я добавил тег ui-grid-auto-resize

%div.grid#grid4{'ui-grid'=>'gridOptionsAdd', 'ui-grid-auto-resize'=>''}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню