如何添加:动态激活菜单元素

时间:2016-02-03 09:49:34

标签: html css angularjs

我正在单页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的类。我需要通过属性激活锚标记。

1 个答案:

答案 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; 
           }