我有一个服务打开一个带有组件 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;
}
}
})()
您需要使用
resolve
与 bindings
访问传递的参数
关于AngularJS 注入(inject)错误 - 未知提供程序 : modalMessagesProvider <- modalMessages,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54232019/