我正在尝试使用下面的代码将对象传递到 bootstrap/angularJS 中的模式对话框中。我按照 AngularJS UI Bootstrap modal is unable to perform functions from scope 给出的答案的风格做到了这一点。当模态表单应该通过调用 editGroup() 打开时,我收到以下错误:
Error: [$injector:unpr] Unknown provider: selGroupProvider <- selGroup
var EditGroupModalController = function ($scope, $modalInstance, selGroup) {
$scope.user = $sessionStorage.user;
$scope.selGroup = selGroup;
$scope.closeModal = function () {
$modalInstance.close();
};
};
$scope.editGroup = function (selGroup) { // "selGroup" receives the current Group object from $scope.groupList[]
$modal.open({
templateUrl: 'app/views/administration/advanced/editgroup.html',
controller: ['$scope', '$modalInstance','$modal','$sessionStorage','advancedService','selGroup', EditGroupModalController],
size: 'lg',
windowTemplateUrl:'app/views/partials/modaltemplatedraggable.html',
backdrop:'static',
resolve: {
item: function () {
return selGroup;
}
}
});
};
这个错误的官方描述是here ;但是,我不明白为什么会收到此错误。任何对此的帮助将非常感激。
最佳答案
- 您的 Controller 的依赖项列表与 Controller 的函数定义不匹配:在
$modal.open
中,您列出了六个依赖项,而在函数中仅存在三个依赖项。 - 依赖项是通过
resolve
键注入(inject)的 - 在您的情况下,键是item
。
对代码进行必要的更改才能使其正常工作:
替换 (1)
var EditGroupModalController = function ($scope, $modalInstance, selGroup)
与
var EditGroupModalController = function ($scope, $modalInstance, $modal, $sessionStorage, advancedService, selGroup)
并替换(2)
resolve: {
item: function () {
与
resolve: {
selGroup: function () {
关于javascript - 在 AngularJS/bootstrap 中将对象传递到模式对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495471/