在前面Angularjs开发一些经验总结中我们说到在angular开发中angular controller never 包含DOM元素(html/css),在controller需要一个简单的POJO(plain object javascript object),与view完全的隔离(交互angularjs框架的职责。但在某些项目中看见controller涉及DOM的元素最多的是在controller scope上定义某变量,其值为class name,形如:
function ctr($scope){ $scope.test =“classname”; } <div class=”{{test}}”></div>
这种方式完全没错,是angular提供的一种改变class的方式,但是在controller涉及了classname在我看来是乎总是那么诡异,我希望的是controller是一个干净的纯javascript意义的object。
在angular中为我们提供了3种方案处理class:
1:scope变量绑定,如上例。(不推荐使用)
2:字符串数组形式。
3:对象key/value处理。
我们继续其他两种解决方案:
1字符串数组形式是针对class简单变化,具有排斥性的变化,true是什么class,false是什么class,其形如;
function Ctr($scope) { $scope.isActive = true; } <div ng-class="{true: 'active', false: 'inactive'}[isActive]"> </div>
其结果是2中组合,isActive表达式为true,则 active,负责inactive。
2对象key/value处理主要针对复杂的class混合,其形如:
function Ctr($scope) { } <div ng-class {'selected': isSelected, 'car': isCar}"> </div>
当 isSelected = true 则增加selected class,
当isCar=true,则增加car class,
所以你结果可能是4种组合。
个人推荐用2,3两种方式,不建议将class放入controller scope之上,scope需要保持纯洁行,scope上的只能是数据和行为。
相关推荐
以上就是关于AngularJS中ng-class使用方法的介绍。ng-class是一个强大的指令,它提供了灵活的方式来控制元素的class,从而影响到CSS样式的应用。通过使用ng-class,开发者可以根据不同的条件动态地改变元素的样式,...
本文实例讲述了AngularJS中ng-class用法。分享给大家供大家参考,具体如下: 使用 ng-class 动态设置元素的类,方法是绑定一个代表所有需要添加的类的表达式。重复的类不会添加。当表达式发生变化,先前添加的类会被...
本文主要介绍AngularJS ng-class-even 指令,这里整理了ng-class-even基础知识资料,并附实例代码和效果图,学习AngularJS指令的朋友可以看下
本篇文章将详细探讨如何在AngularJS下使用`ng-repeat`和`ng-class`实现这样的功能。 首先,让我们回顾一下`ng-repeat`的基本用法。`ng-repeat`接收一个表达式,该表达式通常是一个数组或对象的迭代。例如,如果你有...
在AngularJS框架中,为了使用ng-class-odd等指令,首先需要引入AngularJS的库文件。在示例代码中,是通过引入一个外部CDN链接来实现的:`***"></script>`。之后,定义一个AngularJS模块和控制器,其中模块名为"myApp...
在使用ng-repeat的过程中,往往需要为每个生成的元素绑定一个模型(model),以便收集用户输入的数据。在某些场景下,ng-model的值是动态生成的,这时候就可能遇到问题,因为无法预知具体变量名,从而无法在控制器...
本文将深入探讨如何使用`ng-class`来切换类,并提供两种常见的用法:字符串数组形式和对象键/值处理。 1. 字符串数组形式: 这种形式适用于简单的类切换,特别是当类之间存在排斥性时。例如,`isActive`为`true`时...
让我们详细了解一下`ng-class`的用法。 首先,`ng-class`可以接受三种类型的值: 1. **对象映射方式**: 在示例中,`<p ng-class="{strike: deleted, bold: important, red: error}">`就是使用对象映射方式的例子...
在AngularJS中,`ng-options`指令用于在`<select>`元素中动态生成下拉列表选项,实现数据绑定。这个指令使得我们可以轻松地将后台数据模型与用户界面交互结合,提供了一个灵活的方式来处理复杂的列表展示。 1. **...
ng-repeat-start与ng-repeat-end时AngularJS(1.2.x)扩展的,使用这两个指令可以灵活控制遍历形式。 例如: index.html <div class=uk-panel ng-controller=UserCtrl> <ul class=uk-list> <li ng-repeat-start=...
本文将详细介绍ng-class在AngularJS中的三种使用方式,并分析其各自的适用场景与优缺点。 一、通过数据的双向绑定使用ng-class 第一种方法是利用AngularJS的数据绑定特性来实现ng-class的功能。这种方式下,我们...
button ng-repeat=t in deptName class=deptDiv ng-class={'deptDivOnclick':selected==t.name} ng-click=showDeptEmps(t.name )>{{ t.name }} </button> 2、angular代码如下所示: $scope....
其中之一便是`ng-class`指令,这个指令允许我们动态地根据数据模型(model)的状态来改变元素的CSS类。在本文中,我们将深入探讨`ng-class`指令的用法、定义、语法以及实例,帮助初学者更好地理解和应用这个功能。 ...
表格中的每一行`<tr>`使用`ng-repeat`指令遍历数据,`ng-class`可以根据特定条件(如`user.money > 500`)应用CSS类。列头使用`data-title`属性定义,`sortable`属性允许列进行排序: ```html <td data-title="'...
`ng-animate`和`ng-cookies`是AngularJS中的两个重要组件,分别用于处理动画和管理cookies。 `ng-animate`是Angular的一个插件模块,它允许开发者在Angular的特定事件(如`ng-show`、`ng-hide`、`ng-repeat`等)...