我正在尝试构建一个自定义模态服务来接受数据并使用这些输入生成一个模态;但是,当将 Controller 的文字标识符传递给模式的 controller
属性时,我收到未知提供程序错误 is Angular。
我的应用程序中的其他地方有依赖注入(inject);它只是在这里失败了。我知道,关于处理这个问题有很多问题;然而,在我读过的文章中,我无法找到更通用的答案来为我指明正确的方向。
这是我的服务代码:
angular.module('app').service('CustomModalService', ['$uibModal', function ($uibModal) {
this.openCustomModal = function (size, title, message, action) {
var actionToPerformOnConfirm = action;
var modalInstance = $uibModal.open({
templateUrl: 'templates/CustomModal.html',
controller: 'CustomModalInstanceController',
controllerAs: 'vm',
size: size,
resolve: {
content: function () {
return {
title: title,
message: message
};
}
}
});
modalInstance.result.then(function (actionToPerformOnConfirm) {
console.log('something happened');
}.bind(this));
};
}]);
这是上面提到的模态 Controller :
angular.module('app').controller('CustomModalInstanceController', function ($uibModalInstance, content) {
var vm = this;
vm.title = content.title;
vm.message = content.message;
$scope.confirmAction = function () {
$uibModalInstance.close();
};
$scope.cancelAction = function () {
$uibModalInstance.dismiss('cancel');
};
});
根据我对 Angular 的理解,这应该足够了。 如果 Controller 引用被删除,则此服务中的一切正常,否则。
甚至还有this question (我遇到的所有问题的一个很好的总结)证实了文档和我在网上看到的大量示例;然而,我仍然收到未知提供商错误。该用户甚至询问same question (再次,从我所看到的,我的代码是“正确”的光辉例子)!
为了表明两者位于同一目录中,下面是目录结构的图片:
我需要从哪里开始着手解决这个问题?这是应用程序配置问题吗?
最佳答案
我要回答我自己的问题,非常感谢 Manu Antony 与我一起工作。问题不在于 Controller 的注入(inject)本身,而在于提供给 Controller 的参数。
最后,这是我的语法错误。
这是正确的 Controller 签名语法(我添加了有趣的范围):
angular.module('app').controller('CustomModalInstanceController', ['$scope', '$uibModalInstance', 'content', function ($scope, $uibModalInstance, content) { ...
关于javascript - 未知提供者错误、依赖注入(inject)、模态 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35435406/