Я хочу превратить модал в страницу. Модальные данные заполнены функцией под названием fillProperties
. Вот старый сервис с модальным режимом:
// BEFORE
angular.module('mda')
.service('visualizationModalService', ['$rootScope', 'nsjRouting', 'moment', 'toaster', '$uibModal', '$q', '$injector', '$filter',
function ($rootScope, nsjRouting, moment, toaster, $uibModal, $q, $injector, $filter) {
var fillProperties = function (specialEntity, scope) {
// important stuff
}
var selfService = {
open: function (solicitation, scope) {
return $uibModal.open({
template: require('html-loader!./visualization.modal.html'),
controller: ['entity', '$uibModalInstance', '$injector', 'toaster', '$scope', '$rootScope', function (entity, $uibModalInstance, $injector, toaster, $scope, $rootScope) {
// LOTS OF CODE
}],
controllerAs: "$ctrl",
resolve: {
entity: function () {
entity = angular.copy(solicitation);
return fillProperties(entity, scope); // important function call!
}
}
});
}
};
return selfService;
}]);
Вы можете видеть, что есть вызов функции fillProperties
в разрешении.
Я заменил вышеупомянутый сервис и контроллер в более отдельным способом:
// AFTER
angular.module('mda')
.service('visualizationService', ['$rootScope', 'nsjRouting', 'moment', 'toaster', '$uibModal', '$q', '$injector', '$filter',
function ($rootScope, nsjRouting, moment, toaster, $uibModal, $q, $injector, $filter) {
var fillProperties = function (specialEntity, $scope) {
// important stuff
}
}])
angular.module('mda')
.controller('visualizationFormShowController', [
'$scope', '$stateParams', '$state', 'entity', 'toaster', '$injector', 'visualizationService', function (
$scope, $stateParams, $state, entityService, entity, toaster, $injector, visualizationService) {
// LOTS OF CODE
}]);
Проблема в том, что мне нужно выполнить эту функцию fillProperties
, которая ранее вызывалась в разрешении, как вы можете видеть в старом коде, но я не знаю как именно это сделать в новой версии кода. Я пытаюсь сделать это в файле конфигурации:
angular.module('mda')
.config(['$stateProvider', 'nsjRoutingProvider', function ($stateProvider, nsjRoutingProvider) {
$stateProvider
.state('meurh_solicitacoes_show', {
url: "/visualizations?/:visualization/",
resolve: {
entity: function () {
entity = angular.copy(solicitation);
return fillProperties(entity, scope);
}
},
template: require('html-loader!./show.html'),
controller: 'visualizationFormShowController',
controllerAs: 'vslztns_frm_shw_cntrllr',
})
}]);
, но я получаю сообщение об ошибке неопределенной функции с вышеуказанным подходом. Есть ли способ получить доступ к сервисной функции и ее свойствам в разрешении конфига? Или есть другие подходы лучше?