У меня есть страницы, которые в настоящее время работают с четырьмя сетками. Основной сетью, загруженной страницей, являются пользователи, а затем еще 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)
Большое спасибо.
Вопрос, который я имел, связан с этим билетом 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'=>''}