11

我有一个 angularjs 应用程序,用于打开和隐藏隐藏的 div。

这是一个带有示例的 jsfiddle - jsfiddle

$scope.openLogin = function(){
    $scope.userLogin = true;
};
 $scope.hideLoginContainer = function(){
    $scope.userLogin = false;
};

当我单击“单击此处”链接时,它将显示用户登录 div,因此当我单击外部时需要隐藏此 div。我在这里面临的问题是即使我在用户登录 div 中单击它也会隐藏。

有人知道什么好主意吗?谢谢

4

2 回答 2

6

它应该可以工作,只需编辑: <div hide-login="hideLoginContainer()" class="loginBox" ng-show="userLogin" style="display:none;" >

于 2013-11-30T02:13:16.797 回答
1

您可以在事件处理程序中检查 originalTarget 或 srcElement,$document.bind('click')如果它与loginBox元素匹配,则不要隐藏它。

编辑:我刚刚意识到......您还必须stopPropagation()在 loginBox 元素上使用,当您在登录框内单击时,它应该足以修复隐藏

于 2013-11-11T07:43:02.193 回答