从另一个控制器

时间:2016-09-27 09:24:14

标签: angularjs angular-ui-bootstrap bootstrap-modal angular-broadcast

您好我有一个控制器A,它根据一些网址参数生成一个表单,并在提交该表单后会执行一些操作。现在我已经创建了另一个controllerB,并且我创建了一个按钮。单击该按钮后,将打开一个模型弹出窗口,其中包含controllerA url as iframe src。 在该模型弹出窗口中,我能够看到生成的表单。提交该表单后,我必须关闭模型弹出窗口。

controllerA

  - Contains some logic to generate form

controllerB

  - Contains a model popup with embed iframe. iframe src as controllerA URL

这是我的问题         如何在提交表格后关闭该模型?

以下是示例代码:

此代码包含在controllerB

  $scope.addmemPopup = function() {
        $scope.showpopup = $modal.open({
            templateUrl: 'addmem.tpl.html',
            size: 'lg',
            backdrop: 'static',
            keyboard: false,
            windowClass: 'add-mem'
        });
  }

  $scope.getIframeurl = function() {
        return '#/genmem/?mem_id='+$scope.mem.id+'&z_id=' + $scope.mem.zip;
  };
  $scope.hidePopup = function() {
        $scope.showpopup .close();
  };

在controllerA中我有一个提交表单的方法。提交表单后如何关闭从controllerB呈现的上述弹出窗口。

我希望我能正确解释。请帮我解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:0)

控制器A和控制器B之间的关系是什么? 如果controllerB是父控制器,您可以在controllerA中使用$scope.$emit('event:close')并在controllerB中使用

接收此事件
$scope.$on('event:close',function(evt) {
   $scope.showpopup.close();
})