Ich habe ein Stück JavaScript-Code, der einen eckigen Service aufrufen muss. Ich versuche, auf den Dienst zuzugreifen, indem die Winkelmodul Abrufen wo der Dienst definiert ist und dann den Dienst es selbst bekommen:
var messagemanagerModule = angular.injector(['ng', 'portal.services.messagemanager']);
var messageService = messagemanagerModule.get('MessageService');
messageService.postMessage('portal', moduleId, 'selectModule');
Das Modul und der Service ist wie folgt definiert:
angular.module('portal.services.messagemanager', ['modules.modal', 'modules.softlogoff'])
.factory('MessageService', messageService);
messageService.$inject = ['$rootScope', '$modal', '$translate', 'ConfigurationService'];
function messageService($rootScope, $modal, $translate, ConfigurationService) {
var service = {
showMessage: showMessage,
showSoftLogoff: showSoftLogoff,
postMessage: postMessage,
supportedMessages: supportedMessages
};
return service;
Leider bekomme ich der Fehler:
Error: $injector:unpr Unknown provider: $modalProvider <- $modal <- MessageService"
ich glaube, ich brauche $ modal zu injizieren, aber ich weiß nicht, wie es zu tun.
Ich glaube nicht, dass das das Problem ist. Ich habe kein Problem den MessageService von einem anderen Controller anzurufen. Wenn ich $ uibModal die Anwendung Fehler beim Start verwenden: Unbekannter Provider: $ uibModalProvider <- $ uibModal <- MessageService <- ContextManagerService – peterbf