我正在使用 controllerAs 语法来避免在我的控制器中出现 $scope 汤,并且还使用 ui.bootstrap 来呈现模态视图。
我需要打开一个与当前控制器共享相同范围的 modalInstace。注入作用域时,您可能会执行以下操作:
var modalInstance = $uibModal.open({
templateUrl: 'addEditModal.html',
scope: $scope
});
但是,由于我没有注入作用域,而是使用了 controllerAs 语法,所以这不起作用。
根据我的发现,您将需要使用 resolve 来传递数据,但您必须通过函数显式传递它。有没有办法通过整个范围?
在该模式中我需要做很多事情,并且传递大量数据似乎过大了。
不想这样做,因为它看起来很乱......
var modalInstance = $modal.open({
templateUrl: 'myModalContent.html',
controller: 'ModalInstanceCtrl',
resolve: {
user: function() {
return vm.user;
},
something: function() {
return vm.something;
},
blah: function() {
return blah;
}
}
});
有更好的想法吗?