使用angular-boostrap的uibmodal,我想给我的模态一组命名空间的范围参数。我需要将这些范围参数存放在我的父级中以传递给其他控制器,但我也不希望我的模式可以访问我的整个父范围。所以我真正想做的是:
//parent controller
$scope.selector = { ... }
var modalInstance = $uibModal.open({
animation: false,
controller: 'SelectorController',
scope: $scope.selector
templateUrl: 'selector.tpl.html'
});
但是我得到了:
angular.min.js:111 TypeError: c.$new is not a function
at angular.bootstrap-tpls.min.js:8
是否有实现我想要的模式?
答案 0 :(得分:1)
有一些选项,您可以将params从当前范围传递到模态范围,只需在Controller的param中添加currentUserId
resolve: {
currentUserId: function () {
return row.entity._id;
}
}
答案 1 :(得分:0)
我使用的解决方案是使用$rootScope.$new()
模块documented here
这允许我用
实例化我的模态var modalInstance = $uibModal.open({
animation: false,
controller: 'SelectorController',
scope: $scope.selector,
templateUrl: 'selector.tpl.html'
});
我的模态现在有一个它可以使用的命名空间范围,但是从我的父范围可以获得对该范围的所有更改。