首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用角度切换<body>标签

如何用角度切换<body>标签
EN

Stack Overflow用户
提问于 2017-09-25 02:51:53
回答 3查看 63关注 0票数 0

我有一个HTML模板,每个屏幕的<body>标记中都有一些类。就像这个登录屏幕:

代码语言:javascript
复制
<body class="login-screen doABC doXZY etc">...

这个注册屏幕:

代码语言:javascript
复制
<body class="signup-screen doQWE doQAZ etc">...

代码语言:javascript
复制
<body>
  <div class="login-screen doABC doXZY etc" ng-If="app1">
    ...
  </div>
  <div class="signup-screen doQWE doQAZ etc" ng-If="app2">
    ...
  </div>
</body>

因为类需要在<body>标记中才能工作和重构,所以这将非常耗时。注意,这些类同时触发CSS和JS函数。

EN

回答 3

Stack Overflow用户

发布于 2017-09-25 03:08:38

使用ng样式或ng类使用angularjs应用类。

票数 0
EN

Stack Overflow用户

发布于 2017-09-25 03:09:42

尝试使用ngClass根据scope.app1值进行计算。一般的html class优先规则仍然适用于这里。doABC然后doXZY等..。

html

代码语言:javascript
复制
<body class="doABC doXZY etc" ng-class="screenBasedClass()"></body>

脚本

代码语言:javascript
复制
$scope.screenBasedClass = function () {
    if ($scope.app1) {
        return 'login-screen'
    } else if ($scope.app2) {
        return 'signup-screen';
    } else {
        return '';
    }
}
票数 0
EN

Stack Overflow用户

发布于 2017-09-25 03:17:07

您可以使用ng-class特性。

  • ng-app保存在html标记中,根级控制appCtrl也保存在html
  • 在根控件appCtrl中保留一个作用域值,每当切换屏幕时,更改类名。

html

代码语言:javascript
复制
<html ng-app="app" ng-controller="appCtrl">
<head>
</head>
<body class="doABC doXZY etc" ng-class="bodyClass">
    <!-- body content or routing div -->
</body>
</html>

javascript

代码语言:javascript
复制
app.controller('appCtrl', function($scope) {
    $scope.bodyClass = '';

    $scope.changeBodyClass(className) {
        $scope.bodyClass = className
    }
})

无论何时要更改类,都可以通过changeBodyClass方法更改类。您还可以放置一个$broadcast侦听器,并从外部更改类。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46396952

复制
相关文章

相似问题

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