0

我的应用程序中有使用 AngularJS 加载的菜单,当我单击菜单项时,我需要突出显示该项目。我的菜单如下所示:

<ul class="nav nav-stacked" data-ng-controller="ProjectListController" >
  <li data-ng-repeat="project in projects" data-active-link="{{project.id}}">
    <a href="#/project/{{project.id}}">{{project.title}}</a>
  </li>
</ul>

我在传递项目 ID 的地方创建指令,并且在该指令内部我需要验证是否

 $location.path() == '/project/project.id'

问题是当我来到我的角度指令时,我没有 project.id 的值,该值是稍后分配的,所以我将 'project/project.id' 作为文本字符串,它不等于 $location。小路()

最好的方法是什么?

4

1 回答 1

0

假设您已经/project/:projectId在 routeProvider 中定义了格式的路由。您可以在 ProjectListController 中执行的操作是将当前 projectid 分配给范围变量

$scope.projectId=$routeParams.projectId;

您需要将$routeParams服务注入您的控制器

然后在你的html中你可以做

 <a href="#/project/{{project.id}}" ng-class="{selected:projectId===project.id}">{{project.title}}</a>

这将selected在锚点上应用与路由项目 ID 匹配的类。

您可以通过传递$routeParams服务在指令中执行相同的操作。

于 2013-10-06T04:20:41.520 回答