3

ngDialog为了在成功登录后自动关闭,我使用了以下方法。

HTML模板,

<a href="" ng-click="signin()">Log In</a>
<a href="" id="btnClose" ng-click="closeThisDialog()"   
style="display:none;">Close</a>

在控制器中,该signin方法有如下代码触发关闭按钮的点击事件,

$timeout(function () {
    var btnClose = document.getElementById('btnClose');
    angular.element(btnClose).triggerHandler('click');
}, 0);

有没有更好的方法来ngDialog自动关闭?

4

3 回答 3

1

您可以在登录方法中像下面一样简单地使用closeThisDialog 。单击登录按钮后,这将关闭对话框。

$scope.signin = function() {
     $scope.closeThisDialog();
};
于 2016-04-30T16:25:14.820 回答
1

我为这种东西创建了一个小指令:

app.directive('closeDialog', function(ngDialog, $timeout) {
  return {
    link: function(scope, element, attrs) {
      if(attrs.closeDialog) {
        $timeout(function(){ngDialog.close()}, attrs.closeDialog * 1000);
      }
      element.bind('click', function(element) {
        ngDialog.close();
      })
    }
  }
});

您可以通过在自定义结束标记中简单地添加指令来使用它:

<button close-dialog="5">Close</button>

此对话框将在 5 秒后关闭。

于 2016-06-14T10:16:46.180 回答
0
// inside dialog's controller
function sigin() {
// do sigin
    .then(function () {
        that.closeThisDialog();
    })

}

// Page's controller 
var dialog = ngDialog.open({
   template  : 'scripts/modals/signup.tpl.html',
   ...
   etc.
});
于 2015-06-30T21:58:39.790 回答