要在成功登录后自动关闭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
?
答案 0 :(得分:1)
您可以像登录方法一样简单地使用closeThisDialog。这将在单击登录按钮后关闭对话框。
$scope.signin = function() {
$scope.closeThisDialog();
};
答案 1 :(得分: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秒后关闭。
答案 2 :(得分: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.
});