如何将函数传递给角度ui bootstrap模态

时间:2014-06-13 12:17:54

标签: angularjs angular-ui-bootstrap

将函数传递给角度ui bootstrap模态对话框的最佳方法是什么?我在我的模态控制器中创建了一个方法,它调用$ scope。$ parent.myMethod(),如下所示:

$scope.isChosen = function(concept) {
    return $scope.$parent.isChosen(concept);
};

这有效,但我宁愿将函数传递给模态,其方式与将函数传递给指令的方式类似。我试过使用模态"解决"这样做的参数但没有成功。是否可以解析模态的函数,如果是,那么语法是什么?如果不可能,除了访问父范围之外,还有其他方法吗?

编辑:这是一个尝试将方法传递给模态的插件,它有点简化,但代表了我尝试做的事情:http://plnkr.co/edit/eCjbZP

1 个答案:

答案 0 :(得分:6)

当您定义模态时,必须像这样解决:

  // here is the controller where you want to trigger the modal to open
 $scope.openModal = function () {
     // somewhere in your html , you may click on a button to envoke openModal()
   var modalInstance = $modal.open({
      templateUrl: 'myModalContent.html',
      controller: ModalInstanceCtrl,
      size: size,
      resolve: {
        isChosen: function () {
          return $scope.isChosen;
        }
     }
   });
};

稍后,在你的modalCtr中你可以像这样注入 isChosen

  app.controller('modalCtrl',function($scope,isChosen){
     // now you can use your isChosen function however you want
  });