javascript - 如何在 Angular 中替换 body 类 [ 最佳方法 ]

标签 javascript jquery html angularjs

在我的index.html中我有我的<header>然后<body>带有一些子元素和 <footer>元素。

其余代码位于每个页面的模板中,例如 templates/home.html、templates/login.html

对于此页面之一,我需要替换:

<body class="page-homepage" ng-app="historyApp" id="body">

<body class="page-subpage" ng-app="historyApp">

有什么好的方法吗?

我找到了一些使用 jquery 的方法,例如(以它为例):

var el = document.querySelector('#body');
el.classList.remove('page-homepage');
el.classList.add('page-subpage');

但我相信你们中的许多人已经不得不处理这个问题了。 有人可以建议我如何以 Angular 方式做到这一点吗?

最佳答案

在我看来,最好的方法是向 $rootScope 添加一个变量

$rootScope.isSub = false;

并在你的 body 元素上使用 ngClass 指令:

<body ng-class="{'page-subpage':isSub,'page-homepage':!isSub}" ng-app="historyApp">

并为每个 Controller 指定 $rootScope.isSub 值。

关于javascript - 如何在 Angular 中替换 body 类 [ 最佳方法 ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34271891/

相关文章:

javascript - 如何让 javascript 随机发生器出现图像

javascript - 基于屏幕调整大小(而不是页面刷新)进行检测

JavaScript 事件委托(delegate)未按预期工作

javascript - 检查div中的数据是否被编辑

c# - 在 Windows8 中编写 C#/Xaml 与 HTML/JavaScript WinRT 应用程序的优缺点是什么

javascript - 在按钮中调用 javascript

javascript - 填充 Mongoose 后查找

javascript - 根据特定链接点击显示/隐藏 DIV

javascript - 使用Javascript有没有办法抓取由线性或径向渐变渲染的背景图像?

javascript - 如何仅在 Bootstrap 选项卡处于事件状态时加载它?