我通过以下方式创建了菜单和子菜单:

<li>
    <a href="#/solution" ng-class="{ current: isActive('/solution') }" >
        <i class="halflings white home"></i>
        {{menu.home}}
    </a>
</li>


当我在本地主机/解决方案上时,解决方案菜单处于活动状态。子菜单处于活动状态时如何执行当前的父菜单?就像是:

current: isActive('/solution/1,/solution/2,/solution/3,/solution/.....').


我的isActive方法如下:

$scope.isActive = function (viewLocation) {
    var active = (viewLocation === $location.path());
    return active;
};

最佳答案

根据我的评论,要使用正则表达式进行检查,请使用:

<li>
    <a href="#/solution" ng-class="{ current: isActive(/^\/solution/) }" >
        <i class="halflings white home"></i>
            {{menu.home}}
    </a>
</li>


您正在向您的isActive函数传递正则表达式,该正则表达式将匹配以“ / solution”开头的任何字符串

现在,您的isActive函数必须针对regexp测试网址:

$scope.isActive = function (viewLocation) {
  return viewLocation.test($location.path());
};


有关其工作方式的详细信息,请参见JS的regexpregex#test上的结帐文档

09-10 05:04
查看更多