Ошибка внедрения AngularJS - Неизвестный поставщик: modalMessagesProvider <- modalMessages - PullRequest
0 голосов
/ 17 января 2019

У меня есть сервис, открывающий модальное angular-ui-bootstrap с помощью контроллера компонентов. Но мой контроллер не может получить доступ к параметру, который я передаю (modalMessages, я просто хочу его напечатать). Ошибка: Ошибка: [$ injector: unpr] Неизвестный поставщик: modalMessagesProvider <- modalMessages </p>

Кто-нибудь может помочь?

Услуги:

angular.module('app').service('AlertService', function ($uibModal) {
    this.showModal = function (modalMessages) {
        return $uibModal.open({
            component: "modalComponent",
            resolve: {
                modalMessages: function () {
                    return modalMessages;
                }
            }
        }).result;
    }
});

Контроллер компонентов:

'use strict';

const Modal = {
    templateUrl: 'views/modals/modalAlert.html',
    controller: ['modalMessages', ModalCtrl],
    controllerAs: '$ctrl',
    bindings: {
        modalMessages: "<",
    }
}


angular.module('app').component('modalComponent', Modal);

function ModalCtrl() {

    this.modalMessages = modalMessages;
    console.log(this.modalMessages);
}

1 Ответ

0 голосов
/ 20 января 2019

Взгляните на это plunkr

Обратите внимание на изменения, которые я сделал в:

(function(){
  const Modal = {
    templateUrl: 'modalAlert.html',
    controller:  ModalCtrl,
    bindings: {
      resolve: "<"
    }
};

angular.module('app').component('modalComponent', Modal);

function ModalCtrl() {
  var $ctrl = this;
  $ctrl.$onInit = function() {
    $ctrl.modalMessages = $ctrl.resolve.modalMessages;
  }
}

})()

вам нужно использовать resolve с bindings для доступа к переданному параметру

...