在Angular(以及一般情况下)中,我非常喜欢将视图逻辑保留在我的控制器之外,而且我认为没有发生这种情况的地方是CSS类和ng-class的使用。
对于ng-class你可能不太熟悉,它是一个特殊的指令,允许绑定表达式并将它们作为元素的类放置。ng-class的一个非常常见的用途是这样的:
<p ng-class="{{active}}">Class applied!</p><script> function MySimpleCtrl() { $scope.active = 'active'; ...
所以在控制器中我们设置应该显示的特定类; 所以假设我们有一个类“inactive.”——我们简单地将$scope.active 变量设置为“inactive”,我们最后在视图中设置了类。
但ng-class甚至比那更好用:
ng-class接受三种不同类型的值:
1、字符串值(类的名称)
2、字符串数组(要应用的类)
3、要评估的对象+表达式
其中选项3的语法看起来像这样
ng-class="{object of key/value pairs}[expression to evaluate]"
基本上,ng-class计算表达式(在方括号中),然后使用它作为对象的键;键相关的值是应用的类。
这允许我们将$scope.active值转换为真正的布尔值(这正是我们使用它的方式)——控制器中没有视图逻辑,控制器更容易测试并且可以重用。
这是一个简单的例子:
<p ng-class="{true: 'active', false: 'inactive'}[isActive]"> Class applied !</p><script> function MySimpleCtrl() { $scope.isActive = true;
如果您正在使用某种条件表达式(即切换),那么您可以使用另一种非常相似的语法:
ng-class="{'selected': isSelected, 'blue': isBlue}"
此处,如果selected为真,则将应用选定的类,blue类也一样。Angular将应用尽可能是真实的,因此您可以将类设置为selected和blue。
以上是如何保持CSS类不受Angular控制器的影响的详细内容。更多信息请关注PHP中文网其他相关文章!

前几天我得到了这个问题。我的第一个想法是:奇怪的问题!特异性是关于选择者的,而在符号不是选择器,那么...无关紧要?

在这篇文章中,我们将使用我构建和部署的电子商务商店演示来进行Netlify,以展示如何为传入数据制作动态路线。这是一个公平的


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器