javascript – 使用controllerAs语法时,将当前作用域传递给modalInstance

前端之家收集整理的这篇文章主要介绍了javascript – 使用controllerAs语法时,将当前作用域传递给modalInstance前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用controllerAs语法来避免在我的控制器中使用$scope soup,并且还使用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;
    }
  }
});

有什么更好的想法?

解决方法

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
});

不注入范围但指定模式控制器的父范围(否则,根范围将用作父级).

由于ControllerAs在父控制器上使用,因此模态控制器将可以访问其范围上的继承的vm对象.

原文链接:https://www.f2er.com/js/153080.html

猜你在找的JavaScript相关文章