Javascript ng单击不触发,深入用户界面视图
我正在使用AngularJS和ui路由器。我有一个子菜单,当他们点击他们的用户名时打开,我想在其中有一个注销按钮。这是一个带有ng点击的div,应该可以注销用户;但是,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
<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中重现
<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;