gpt4 book ai didi

javascript - 使用 controllerAs 语法时将当前范围传递给 modalInstance

转载 作者:可可西里 更新时间:2023-11-01 01:59:37 25 4
gpt4 key购买 nike

我使用 controllerAs 语法来避免在我的 Controller 中出现 $scope soup,并且还使用 ui.bootstrap 来呈现模态视图。

我需要打开一个与当前 Controller 共享相同范围的 modalInstace。注入(inject)范围时,您可能会执行以下操作:

var modalInstance = $uibModal.open({
templateUrl: 'addEditModal.html',
scope: $scope
});

但是,由于我没有注入(inject)作用域,而是使用 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;
}
}
});

有什么更好的主意吗?

最佳答案

I need to open a modalInstace that shares the same scope as the current controller.

模态服务creates inherited scope .和

var modalInstance = $uibModal.open({
templateUrl: 'addEditModal.html',
scope: $scope
});

不注入(inject)作用域,但为模态 Controller 指定父作用域(否则根作用域将用作父作用域)。

由于 controllerAs 用于父 Controller ,模态 Controller 将有权访问其范围内继承的 vm 对象。

关于javascript - 使用 controllerAs 语法时将当前范围传递给 modalInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33164281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com