`

angularjs之ng-class用法

 
阅读更多

  在前面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的使用方法

    以上就是关于AngularJS中ng-class使用方法的介绍。ng-class是一个强大的指令,它提供了灵活的方式来控制元素的class,从而影响到CSS样式的应用。通过使用ng-class,开发者可以根据不同的条件动态地改变元素的样式,...

    AngularJS中ng-class用法实例分析

    本文实例讲述了AngularJS中ng-class用法。分享给大家供大家参考,具体如下: 使用 ng-class 动态设置元素的类,方法是绑定一个代表所有需要添加的类的表达式。重复的类不会添加。当表达式发生变化,先前添加的类会被...

    AngularJS 基础ng-class-even指令用法

    本文主要介绍AngularJS ng-class-even 指令,这里整理了ng-class-even基础知识资料,并附实例代码和效果图,学习AngularJS指令的朋友可以看下

    angularjs下ng-repeat点击元素改变样式的实现方法

    本篇文章将详细探讨如何在AngularJS下使用`ng-repeat`和`ng-class`实现这样的功能。 首先,让我们回顾一下`ng-repeat`的基本用法。`ng-repeat`接收一个表达式,该表达式通常是一个数组或对象的迭代。例如,如果你有...

    AngularJS基础 ng-class-odd 指令示例

    在AngularJS框架中,为了使用ng-class-odd等指令,首先需要引入AngularJS的库文件。在示例代码中,是通过引入一个外部CDN链接来实现的:`***"&gt;&lt;/script&gt;`。之后,定义一个AngularJS模块和控制器,其中模块名为"myApp...

    AngularJS 获取ng-repeat动态生成的ng-model值实例详解

    在使用ng-repeat的过程中,往往需要为每个生成的元素绑定一个模型(model),以便收集用户输入的数据。在某些场景下,ng-model的值是动态生成的,这时候就可能遇到问题,因为无法预知具体变量名,从而无法在控制器...

    angularJs的ng-class切换class

    本文将深入探讨如何使用`ng-class`来切换类,并提供两种常见的用法:字符串数组形式和对象键/值处理。 1. 字符串数组形式: 这种形式适用于简单的类切换,特别是当类之间存在排斥性时。例如,`isActive`为`true`时...

    AngularJS使用ng-class动态增减class样式的方法示例

    让我们详细了解一下`ng-class`的用法。 首先,`ng-class`可以接受三种类型的值: 1. **对象映射方式**: 在示例中,`&lt;p ng-class="{strike: deleted, bold: important, red: error}"&gt;`就是使用对象映射方式的例子...

    AngularJS中ng-options实现下拉列表的数据绑定方法

    在AngularJS中,`ng-options`指令用于在`&lt;select&gt;`元素中动态生成下拉列表选项,实现数据绑定。这个指令使得我们可以轻松地将后台数据模型与用户界面交互结合,提供了一个灵活的方式来处理复杂的列表展示。 1. **...

    Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍

    ng-repeat-start与ng-repeat-end时AngularJS(1.2.x)扩展的,使用这两个指令可以灵活控制遍历形式。 例如: index.html &lt;div class=uk-panel ng-controller=UserCtrl&gt; &lt;ul class=uk-list&gt; &lt;li ng-repeat-start=...

    详解angularJs中关于ng-class的三种使用方式说明

    本文将详细介绍ng-class在AngularJS中的三种使用方式,并分析其各自的适用场景与优缺点。 一、通过数据的双向绑定使用ng-class 第一种方法是利用AngularJS的数据绑定特性来实现ng-class的功能。这种方式下,我们...

    angularJs使用ng-repeat遍历后选中某一个的方法

    button ng-repeat=t in deptName class=deptDiv ng-class={'deptDivOnclick':selected==t.name} ng-click=showDeptEmps(t.name )&gt;{{ t.name }} &lt;/button&gt; 2、angular代码如下所示: $scope....

    AngularJS入门教程之ng-class 指令用法

    其中之一便是`ng-class`指令,这个指令允许我们动态地根据数据模型(model)的状态来改变元素的CSS类。在本文中,我们将深入探讨`ng-class`指令的用法、定义、语法以及实例,帮助初学者更好地理解和应用这个功能。 ...

    angularjs表格ng-table使用备忘录

    表格中的每一行`&lt;tr&gt;`使用`ng-repeat`指令遍历数据,`ng-class`可以根据特定条件(如`user.money &gt; 500`)应用CSS类。列头使用`data-title`属性定义,`sortable`属性允许列进行排序: ```html &lt;td data-title="'...

    Angular ng-animate和ng-cookies用法详解

    `ng-animate`和`ng-cookies`是AngularJS中的两个重要组件,分别用于处理动画和管理cookies。 `ng-animate`是Angular的一个插件模块,它允许开发者在Angular的特定事件(如`ng-show`、`ng-hide`、`ng-repeat`等)...

Global site tag (gtag.js) - Google Analytics