AngularJS 注入(inject)错误 - 未知提供程序 : modalMessagesProvider <- modalMessages

标签 angularjs dependency-injection angular-ui-bootstrap

我有一个服务打开一个带有组件 Controller 的 angular-ui-bootstrap 模式。
但是我的 Controller 无法访问我传递的参数(modalMessages,我只想打印它)。
错误是:错误:[$injector:unpr] 未知提供者:modalMessagesProvider <- modalMessages

任何人都可以帮忙吗?

服务:

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

组件 Controller :
'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);
}

最佳答案

看看这个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;
  }
}

})()

您需要使用 resolvebindings访问传递的参数

关于AngularJS 注入(inject)错误 - 未知提供程序 : modalMessagesProvider <- modalMessages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54232019/

相关文章:

html - 滚动表格内容并修复页面的其余部分

ios - 修改UITableViewCell,这段代码放在哪里?对设计模式感到困惑

c# - 使用反射进行 Ninject 依赖注入(inject)

javascript - Bootstrap ui angularjs 与过滤器问题

angularjs - Angular UI Bootstrap Tooltip 工具提示已打开奇怪的行为

angularjs - 如何在一个页面上至少有两个 ui-bootstrap 的日期选择器?

javascript - AngularJS/CSS 选择器 - 表单验证

javascript - 如何在页面加载时运行服务

javascript - 在 AngularJS 中的两个指令之间共享数据

java - 是否存在可以接受使用构造函数调用创建的 Spring bean 的用例?