[英]passing objects to modal dialog in AngularJS/bootstrap
我正在尝试使用以下代码将对象传递到bootstrap / angularJS中的模式对话框中。 我是按照AngularJS UI Bootstrap模态无法从范围执行功能时给出的答案的方式完成此操作的。 当应该从对editGroup()的调用中打开模态形式时,出现以下错误:
错误:[$ injector:unpr]未知提供程序: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;
}
}
});
};
此错误的正式描述在这里 ; 但是,我不明白为什么会收到此错误。 任何帮助,将不胜感激。
$modal.open
您列出了六个依赖项,而在函数中仅存在三个依赖项。 resolve
键注入-在您的情况下,键为item
。 为了使代码生效,必须对代码进行更改:
更换(1)
var EditGroupModalController = function ($scope, $modalInstance, selGroup)
与
var EditGroupModalController = function ($scope, $modalInstance, $modal, $sessionStorage, advancedService, selGroup)
并替换(2)
resolve: {
item: function () {
用
resolve: {
selGroup: function () {
您应将解析中的变量命名为“ selGroup”而不是“ item”,以便可以正确注入它。
同样,声明的依赖项的名称应与函数定义匹配。 我整理了这个简单的演示。
angular.module('test', ['ui.bootstrap']).controller('TestController', function($scope, $modal) {
var sel = {name: "A group"};
var EditGroupModalController = function($scope, $modalInstance, selGroup) {
$scope.selGroup = selGroup;
$scope.closeModal = function() {
$modalInstance.close();
};
};
$scope.editGroup = function(selGroup) { // "selGroup" receives the current Group object from $scope.groupList[]
$modal.open({
template: '<div>Test {{selGroup.name}}</div>',
controller: ['$scope', '$modalInstance', 'selGroup', EditGroupModalController],
size: 'lg',
backdrop: 'static',
resolve: {
selGroup: function() {
return sel;
}
}
});
};
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.