当路线更改时,我尝试在我的主 .container
类上添加一个类。
我当前的简单解决方案涉及每个主菜单 URL 上的 ng-click
(页面上没有其他 URL):
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>
只要我需要添加更多网址,这似乎就可以正常工作,问题是当用户不单击任何链接并直接访问他无法获取主类的网址时。
有更好的方法吗?
最佳答案
您可以使用一些不同的选项,但我认为对您来说最简单的方法是通过查看 $location
在 Controller 初始化时设置 $scope.isMain
值。所以在 Controller 内部你可以有类似的东西:
var loc = $location.path();
if(loc === /* some route rule you require */){
$scope.isMain = true;
}
看看这里:http://docs.angularjs.org/api/ngRoute/service/ $route 作为底部的示例,有几个不同的示例,说明您可以访问与路线相关的数据类型。
关于javascript - AngularJS 中发生路由更改时如何设置 ngclass 更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22115436/