当我们点击页面上的任何地方时,Angularjs会收到活动吗?

时间:2017-07-14 10:05:27

标签: javascript angularjs

您好我正在使用angularjs开发SPA。我有一个下拉列表。如果用户登录然后下拉列表将是可点击的,它会扩展各种选项,如个人资料,注销等。在app.js我有以下代码来扩展下拉列表

  if (cookieloginid != null) {
            var id = document.getElementById('ProfileDropdown');
    id.innerHTML = $scope.ProfileDropdown = '<div data-drop-down>' + ' <ul>' +
        '<li><a href="#/userProfile">User Profile</a></li>' +
        '<li>test1</li>' +
       ' <li onclick="logout(event)">logout</li>' +
    '</ul>'+'</div>'; 
        }

以上代码工作正常。如果我点击将展开而不是关闭的下拉列表。点击下拉列表如果我点击网页上的任何地方我想关闭展开的下拉列表。我可以知道这可能吗?任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以通过为上面的内容创建自定义目录来执行此操作,请参阅以下链接以获取相关信息: http://www.competa.com/blog/an-angular-click-anywhere-to-close-dropdown-menu-directive/

或者您可以使用jquery $(document)在文档上添加自定义事件来执行操作。

见以下链接: http://embed.plnkr.co/rpOgQC/

你也可以使用event.stopPropagation();,如果你点击下拉列表,你可能不会在你的下拉菜单没有被打开的情况下结束。