我正在单页angularjs web app中动态构建菜单。
`<li ng-repeat="m in menu"><a href="#{{m.url}}">{{m.name}}</a></li>
我想将活动类添加到锚标记以显示当前页面的选择内容。
a
标记CSS:
.cl-effect-4 a::after {
position: absolute;
top: 170%;
left: 0;
width: 100%;
height: 1px;
background: #fff;
content: '';
opacity: 0;
-webkit-transition: height 0.3s, opacity 0.3s, -webkit-transform 0.3s;
-moz-transition: height 0.3s, opacity 0.3s, -moz-transform 0.3s;
transition: height 0.3s, opacity 0.3s, transform 0.3s;
-webkit-transform: translateY(-10px);
-moz-transform: translateY(-10px);
transform: translateY(-10px);
}
.cl-effect-4 a:hover::after,
.cl-effect-4 a:focus::after,.cl-effect-4 a:active::after {
height: 5px;
opacity: 1;
-webkit-transform: translateY(0px);
-moz-transform: translateY(0px);
transform: translateY(0px);
}
我尝试了ng-class="{active:getClass(m.url)}"
,但这不起作用,因为它只添加了名为active的类。我需要通过属性激活锚标记。
答案 0 :(得分:0)
示例中ngClass表达式的右侧应该是布尔值val。因此,如果getClass()为true,则会添加'active'。您应该从getClass函数返回true或false。
$scope.getClass = function (path) {
if ($location.path().substr(0, path.length) === path) {
return true;
} else {
return false;
}