Angularjs 如何在布局中单击ng时添加类?
以下是页面布局:Angularjs 如何在布局中单击ng时添加类?,angularjs,Angularjs,以下是页面布局: <li class="dropdown"> <ul class="submenu"> <li ng-click="SetActiveMenuForPersonalInfo();"> <a href="../Account/#/PersonalInfo">@Translate("MY_ACCOUNT")<a> </li> </ul&
<li class="dropdown">
<ul class="submenu">
<li ng-click="SetActiveMenuForPersonalInfo();">
<a href="../Account/#/PersonalInfo">@Translate("MY_ACCOUNT")<a>
</li>
</ul>
</li>
当用户单击版面上的“我的帐户”时,如何更改
$scope.activeMenu
和$scope.activeLink
?控制台为$scope.activeMenu
打印“设置”,这意味着它在函数中,但什么都没有发生。可能是因为我在函数中放入了$scope.activeMenu
?是否尝试停止事件传播?如果不是这样,请尝试将其添加到子元素中
$scope.SetActiveMenuForPersonalInfo = function ($event)
{
$event.stopPropagation();
$scope.activeMenu = 'Settings';
$scope.activeLink = "PersonalInfo";
console.log("Active menu: ",$scope.activeMenu);
}
在您的plnkr中,缺少用于活动链接的css,我将单击链接的分配包装在一个函数中 检查更新的plnkr 功能非常基本:
$scope.changeActiveLink = function(link) {
$scope.activeLink = link;
}
现在,单击时链接是绿色的。这就是你想要的,对吗?也许颜色不同,但原理是一样的
如果您想在单击“联系人”或“关于”时删除绿色,您也可以将其包装在一个函数中,如下所示:
$scope.changeActiveMenu = function(menu) {
if($scope.activeMenu == 'Settings' && menu != 'Settings') {
$scope.activeLink = '';
}
$scope.activeMenu = menu;
}
更新
我终于明白你的意思了,我想。。通过单击链接,您可以更改视图,从而重新实例化控制器。这就是为什么activeMenu是空的。如果您创建一个服务并将当前活动的菜单存储在其中,它将不会为空
我已更新plnkr以包含服务。我不能完全测试它,因为我还没有你的整个项目代码,但有了这个作为指导,你应该能够让它工作 在plnkr中,活动链接不起作用。用activelink替换它的工作原理…它只需要“activelink”,但这不是重点,因为我需要从layoutunaway传递值,如果我理解正确的话,您希望这些条像单击“联系人/关于”等时一样呈红色?是的,但从布局中…不知何故,当我在布局中单击它时,它不起作用…$scope.activeMenu是空的…“on layout”是什么意思?我尝试了如下设置ActiveMenuForPersonalInfo($event);但它不起作用,您是否尝试向子元素添加stoppropagation。或者尝试将ng click指令绑定到标记而不是
$scope.changeActiveMenu = function(menu) {
if($scope.activeMenu == 'Settings' && menu != 'Settings') {
$scope.activeLink = '';
}
$scope.activeMenu = menu;
}