Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ng单击不触发,深入用户界面视图_Javascript_Html_Css_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript ng单击不触发,深入用户界面视图

Javascript ng单击不触发,深入用户界面视图,javascript,html,css,angularjs,angular-ui-router,Javascript,Html,Css,Angularjs,Angular Ui Router,我正在使用AngularJS和ui路由器。我有一个子菜单,当他们点击他们的用户名时打开,我想在其中有一个注销按钮。这是一个带有ng点击的div,应该可以注销用户;但是,ng咔哒声永远不会发射 此位仅显示/隐藏子菜单 <div class="user-view-content" ng-init="showSubMenu = false" ng-click="showSubMenu = !showSubMenu"> {{getUsername()}} <span c

我正在使用AngularJS和ui路由器。我有一个子菜单,当他们点击他们的用户名时打开,我想在其中有一个注销按钮。这是一个带有ng点击的div,应该可以注销用户;但是,ng咔哒声永远不会发射

此位仅显示/隐藏子菜单

<div class="user-view-content" ng-init="showSubMenu = false" ng-click="showSubMenu = !showSubMenu">
    {{getUsername()}}
    <span class="glyphicon glyphicon-chevron-down"></span>
</div>
所有这些标记都封装在
中,它本身在各种ui视图中嵌套了大约5-6个div深。这是我第一次也是唯一一次在他的应用程序中遇到ng click not firing(点击未触发)的情况。由于涉及的复杂性,我无法在JSFIDLE中重现

  • 为什么我的ng click没有开火
  • 更新1

    正如下面iH8所建议的,我认为这可能是一个孤立的范围问题(这没有任何意义,但无论如何都尝试过)。下面的代码不会激发,也不会将{{testVal}}更改为“after”。它始终保持“以前”

    <div class="user-sub-menu" ng-show="showSubMenu" ng-init="testVal='before'">
        <div ng-click="testVal='after'">Logout</div>
        {{testVal}}
    </div>
    
    
    注销
    {{testVal}}
    
    如果没有触发,那是因为
    ng click
    指令在当前范围内找不到
    注销方法。这意味着它嵌套在创建隔离作用域的指令中。通常,作用域原型从其父级继承。独立作用域不存在。因此,它无法从祖先访问任何属性或方法,因为它没有祖先

    固定。我不得不在子菜单的css中添加一个z索引1。原来是在另一个项目后面

    z-index: 1;
    

    我想可能是这样的(虽然这没有任何意义),所以我只是设置一个变量并显示它,然后在ng click中更改它的值。。。也不起作用——编辑我的帖子,加入这样的尝试:o应该知道,当我给出一个复杂的答案时,通常是非常简单的。谢谢你的跟进。
    .user-sub-menu {
        position: fixed;
        border-radius: 6px;
        border: solid 1px #f3fcff;
        padding: 1em;
        top: 51px;
        right: 4px;
    }
    
    <div class="user-sub-menu" ng-show="showSubMenu" ng-init="testVal='before'">
        <div ng-click="testVal='after'">Logout</div>
        {{testVal}}
    </div>
    
    z-index: 1;