0

.container当路线改变时,我试图在我的主类上添加一个类。

我目前的简单解决方案涉及ng-click每个主菜单网址(页面上没有其他网址):

app.controller('MainCtrl', ['$scope', function( $scope ){

  $scope.setMain = function( value ){ $scope.isMain = value };

}]);

然后在我的html中:

<div ng-controller="MainCtrl" class="container" ng-class="{'main': isMain}">
  <ul class="main-menu">
    <li><a href="#" ng-click="setMain(true)"></li>
    <li><a href="#/page-1" ng-click="setMain(false)"></li>
    <li><a href="#/page-2" ng-click="setMain(false)"></li>
  </ul>
  <div ng-view></div>
</div>

只要我需要添加更多网址,这似乎就可以了,问题是当用户不点击任何链接并直接访问他没有获得主类的网址时。

有一个更好的方法吗?

4

1 回答 1

2

您可以使用一些不同的选项,但我认为对您来说最简单的方法是$scope.isMain通过查看$location. 所以在控制器内部你可以有类似的东西:

var loc = $location.path();
if(loc === /* some route rule you require */){
    $scope.isMain = true;
}

看看这里:http ://docs.angularjs.org/api/ngRoute/service/ $route 作为底部的示例,有几个不同的示例,说明您可以访问与路由相关的数据类型。

于 2014-03-01T14:22:23.740 回答