我有一个服务,使用组件控制器打开一个角度-ui-bootstrap模式。但是我的控制器无法访问我正在传递的参数(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;
}
});
组件控制器:
'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
一起使用才能访问传递的参数