我有一个HTML模板,每个屏幕的<body>标记中都有一些类。就像这个登录屏幕:
<body class="login-screen doABC doXZY etc">...这个注册屏幕:
<body class="signup-screen doQWE doQAZ etc">...<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函数。
发布于 2017-09-25 03:08:38
使用ng样式或ng类使用angularjs应用类。
发布于 2017-09-25 03:09:42
尝试使用ngClass根据scope.app1值进行计算。一般的html class优先规则仍然适用于这里。doABC然后doXZY等..。
html
<body class="doABC doXZY etc" ng-class="screenBasedClass()"></body>脚本
$scope.screenBasedClass = function () {
if ($scope.app1) {
return 'login-screen'
} else if ($scope.app2) {
return 'signup-screen';
} else {
return '';
}
}发布于 2017-09-25 03:17:07
您可以使用ng-class特性。
ng-app保存在html标记中,根级控制appCtrl也保存在html中appCtrl中保留一个作用域值,每当切换屏幕时,更改类名。html
<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
app.controller('appCtrl', function($scope) {
$scope.bodyClass = '';
$scope.changeBodyClass(className) {
$scope.bodyClass = className
}
})无论何时要更改类,都可以通过changeBodyClass方法更改类。您还可以放置一个$broadcast侦听器,并从外部更改类。
https://stackoverflow.com/questions/46396952
复制相似问题