【问题标题】:Angular route wildcard possible/workaround?角度路由通配符可能/解决方法?
【发布时间】:2014-05-29 23:07:24
【问题描述】:

我创建了一个 isActive 函数来设置菜单元素上的活动类。

功能如下:

   $scope.isActive = function (path) {
        if (path == $location.path()) {
            return true;
        } else {
            return false;
        }
    }

在我的 HTML 中只是使用:

   <li ng-class="{active: isActive('/page')}">
   <a href="page">Page</a></li>

但是这个 HTML 在我的模板中只定义了一次。所以使用起来真的很棒:

   isActive('/page*')

这样 '/page' URL 之外的所有内容都将处于活动状态。

有没有人知道解决方法,因为我还没有在论坛和角度文档中找到它,所以我想这还没有..

【问题讨论】:

  • 你为什么不使用 ngRouter 呢?我强烈建议使用 ui-router:github.com/angular-ui/ui-router
  • 我让它在 atm 工作。不过谢谢,我今天会看看。

标签: javascript angularjs wildcard routes


【解决方案1】:

可能是这个?

$scope.isActive = function (path) 
{

    var strRegExPattern = '\\b'+path+'\\b'; 

    if( document.location.pathname.match(new RegExp(strRegExPattern,'g')) )
    {
        return true;
    } else {
        return false;
    }
}

不知道能不能代替

document.location.pathname.match(... // VANILLA JS

$location.path().match(... // NG JS

...试试看。

【讨论】:

  • 成功了。非常感谢!我相信人们会喜欢这个解决方案!希望角度将它添加到核心寿。方便的功能..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-12
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 2020-09-20
  • 1970-01-01
相关资源
最近更新 更多