【问题标题】:angular ui bootstrap modal opened in state, how to close in controller?angular ui bootstrap modal 以状态打开,如何在控制器中关闭?
【发布时间】:2016-11-20 21:49:30
【问题描述】:

您好,我正在尝试使用 ui-router 和 ui-bootstrap 创建有状态的模态,我已经像这样成功打开了模态,

.state('static.login', {
        url: '^/login',
        onEnter: function($modal, $state, $stateParams) {
            var modalInstance;
            modalInstance = $modal.open({
                animation : false,
                templateUrl : 'app/components/login/views/login.view.html',
                controller : 'loginController',
                size : 'lg'
            });
            return modalInstance.result["finally"](function() {
                return $state.go('^');
            });
        }
        // templateUrl: 'app/components/login/views/login.view.html',
        // controller: 'loginController'
    })

但我正在努力从我的 loginController 中关闭模式,我认为这将是一个简单的运行 $modal.dismiss('cancel') 的情况,但我被告知关闭是未定义的功能,我是否需要做其他事情才能能够从我的控制器关闭我的模式?

此外,当我导航到 /login 时,主页会显示在模式下方,如果我将当前页面保留在其下方会很棒,这可能吗?

【问题讨论】:

  • 一种方法是通过服务打开它,并与控制器共享服务。将 modalInstance 对象存储在服务中
  • 在控制器中打开它作为激活功能..您可以轻松关闭它。

标签: javascript angularjs twitter-bootstrap angular-ui-router angular-ui-bootstrap


【解决方案1】:

一旦您打开一个模态,在模态控制器内部,即loginController,您可以看到$modalInstance 服务,它将占据模态实例。

你可以在loginController中注入和使用$modalInstance服务

对于关闭弹出窗口,您可以通过 $modalInstance 关闭方法

app.controller('loginController', function($modalInstance){

   //..other controller code which you already had

   //for closing popup do below
   $modalInstance.close();

});

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 2017-07-25
    • 2015-10-24
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多