我有一个类似于此的角度应用程序:
<html>
<body ng-app="my-app" ngcloak ng-controller="MainCtrl">
...stuff...
<!-- Add your site or application content here -->
<div ng-view=""></div>
....
视图按路线设置:
.when('/maps', {
templateUrl: 'views/maps.html',
controller: 'MapsCtrl'
})
效果很好。我想知道的是如何从当前位置获得一个类,使用上面的例子,将一个类“映射”给页面特定CSS的body标记。
发布于 2014-04-08 17:38:07
我会像这样在MainController中设置一个侦听器:
$scope.$on('$routeChangeSuccess', function(newVal, oldVal) {
if (oldVal !== newVal) {
$scope.routeClassName = $route.current.className;
}
});
在模板中:
<body ng-controller="mainController" ng-class="routeClassName">
然后,您可以像这样配置路由:
$routeProvider
.when('/maps', {
controller: 'mapsController',
template: 'maps',
className: 'maps' // <--- class name
})
.when('/about', {
controller: 'aboutController',
template: 'about',
className: 'about' // <--- class name
})
演示:http://plnkr.co/edit/QUaw6SkgPfR4IPyKniXG?p=preview
发布于 2014-04-08 17:27:26
您可以使用$location服务来确定当前位置,然后使用ng类将其分配给您的body标记。例如:
JS
var MainCtrl = function($scope, $location) {
$scope.$location = $location;
}
HTML
<body ng-class="{maps: '/maps' === '$location.path()'}"></body>
https://stackoverflow.com/questions/22943805
复制相似问题