Javascript 来自不同控制器的闭合角模态

Javascript 来自不同控制器的闭合角模态,javascript,angularjs,bootstrap-ui,Javascript,Angularjs,Bootstrap Ui,我是Angular的新手(我必须在我以前的同事之后编辑一个项目) 我已经定义了FormController和ModalController。 ModalController的定义如下: angular.module('app', [...]).controller('ModalController', ['part', class { constructor(part) { this.part = part; } }]); 在FormController中,我有以

我是Angular的新手(我必须在我以前的同事之后编辑一个项目)

我已经定义了FormController和ModalController。 ModalController的定义如下:

angular.module('app', [...]).controller('ModalController', ['part', class {
    constructor(part) {
       this.part = part;
    }
}]);
在FormController中,我有以下代码打开模式:

openModal(template, part) {
    this.$uibModal.open({
        animation: true,
        templateUrl: template + '.html',
        controller: 'ModalController',
        controllerAs: 'ModalCtrl',
        resolve: {
            part: () => {
                return something;
            }
        }
    });
}

我的问题是关闭modal(在视图中单击按钮后)。

您必须将uib modal的实例注入包含close方法的modal控制器中。您可以使用它来关闭模式

openModal(template, part) {
    var modalInstance = $uibModal.open({
        animation: true,
        templateUrl: template + '.html',
        controller: 'ModalController',
        controllerAs: 'ModalCtrl',
        resolve: {
            part: () => {
                return something;
            }
        }
    });
}
将modalInstance注入模态控制器,然后可以使用

modalInstance .close()

方法关闭模式。

您必须将uib modal的实例注入包含close方法的modal控制器。您可以使用它来关闭模式

openModal(template, part) {
    var modalInstance = $uibModal.open({
        animation: true,
        templateUrl: template + '.html',
        controller: 'ModalController',
        controllerAs: 'ModalCtrl',
        resolve: {
            part: () => {
                return something;
            }
        }
    });
}
将modalInstance注入模态控制器,然后可以使用

modalInstance .close()

方法关闭模态。

您需要将依赖项
$uibModalInstance
注入模态的控制器

openModal(template, part) {
    var modalInstance = $uibModal.open({
        animation: true,
        templateUrl: template + '.html',
        controller: 'ModalController',
        controllerAs: 'ModalCtrl',
        resolve: {
            part: () => {
                return something;
            }
        }
    });
}
然后您可以使用
$disclose
$close
,如本例所示,取自:

由于您的控制器被实例化为
part
,您可以使用它,并且假定您不需要传递结果或原因,您也可以从方法中删除这些参数:

  part.ok = function () {
    $uibModalInstance.close();
  };

  part.cancel = function () {
    $uibModalInstance.dismiss();
  };

另外,如果您看到使用了前缀为
$uib
的内容,这意味着它是组件的一部分,希望这些知识能够帮助您在将来搜索更多需要的信息。

您需要将依赖项
$uibModalInstance
注入模态的控制器中

然后您可以使用
$disclose
$close
,如本例所示,取自:

由于您的控制器被实例化为
part
,您可以使用它,并且假定您不需要传递结果或原因,您也可以从方法中删除这些参数:

  part.ok = function () {
    $uibModalInstance.close();
  };

  part.cancel = function () {
    $uibModalInstance.dismiss();
  };

另外,如果您看到使用了前缀为
$uib
的东西,这意味着它是组件的一部分,希望这些知识能够帮助您在将来搜索更多需要的信息。

您可以通过以下方式将模态实例传递到控制器:

angular.module('app', [...]).controller('ModalController', ['part', '$uibModalInstance', class {
    constructor(part, $uibModalInstance) {
       this.part = part;
    }
}]);

正如Callum所说,使用
$uibModalInstance
dismise()
close()
函数关闭模态实例

您可以通过以下方式将模态实例传递到控制器:

angular.module('app', [...]).controller('ModalController', ['part', '$uibModalInstance', class {
    constructor(part, $uibModalInstance) {
       this.part = part;
    }
}]);

正如Callum所说,使用
$uibModalInstance
dismise()
close()
函数关闭模态实例

您可以通过jquery实现这一点:$(“#modalName”).modal('hide')@Jenny大多数Angularjs开发人员在回答Angularjs问题时都尽量避免使用jQuery@Jenny大多数Angularjs开发人员在回答Angularjs问题时尽量避免建议使用jQuery。我如何将模态实例传递到ModalController?您可以通过以下方式将其传递到控制器声明中:
angular.module('app',[…]).controller('ModalController',['part','$uibModalInstance',class{constructor'(part,$uibModalInstance)
如何将模态实例传递到ModalController?您可以通过以下方式将其传递到控制器声明中:
angular.module('app',[…]).controller('ModalController',['part','uibModalInstance',class{constructor(part,$uibModalInstance)