首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角JS根据显示的视图将类分配给身体标记?

角JS根据显示的视图将类分配给身体标记?
EN

Stack Overflow用户
提问于 2014-04-08 17:10:54
回答 2查看 1.7K关注 0票数 0

我有一个类似于此的角度应用程序:

代码语言:javascript
运行
复制
<html>
   <body ng-app="my-app" ngcloak ng-controller="MainCtrl">

     ...stuff...

        <!-- Add your site or application content here -->
    <div ng-view=""></div>

     ....

视图按路线设置:

代码语言:javascript
运行
复制
 .when('/maps', {
            templateUrl: 'views/maps.html',
            controller: 'MapsCtrl'
        })

效果很好。我想知道的是如何从当前位置获得一个类,使用上面的例子,将一个类“映射”给页面特定CSS的body标记。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-08 17:38:07

我会像这样在MainController中设置一个侦听器:

代码语言:javascript
运行
复制
$scope.$on('$routeChangeSuccess', function(newVal, oldVal) {
    if (oldVal !== newVal) {
        $scope.routeClassName = $route.current.className;
    }
});

在模板中:

代码语言:javascript
运行
复制
<body ng-controller="mainController" ng-class="routeClassName">

然后,您可以像这样配置路由:

代码语言:javascript
运行
复制
$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

票数 2
EN

Stack Overflow用户

发布于 2014-04-08 17:27:26

您可以使用$location服务来确定当前位置,然后使用ng类将其分配给您的body标记。例如:

JS

代码语言:javascript
运行
复制
var MainCtrl = function($scope, $location) {
    $scope.$location = $location;
}

HTML

代码语言:javascript
运行
复制
<body ng-class="{maps: '/maps' === '$location.path()'}"></body>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22943805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档