angular的ng-class

项目内想到要替换class时,第一反应是使用angular最为简单粗暴的class改变方式;

在angular中为我们提供了3种方案处理class:
        1:scope变量绑定,如上例。(不推荐使用)
        2:字符串数组形式。
        3:对象key/value处理。

1.scope变量绑定


$scope.test =“classname”;
<div class=”{{test}}”></div>

这种方式虽然可以,但是在controller中出现了class总是显得奇怪,在angular的思想里面controller应该保持纯洁的js。

2.字符串数组形式。

  当isActive=true时,class是active,isActive=false时为空,


 $scope.isActive = true;
<div ng-class="{true: ‘active‘, false: ‘‘}[isActive]"> </div>

3.对象key/value处理主要针对复杂的class混合。

  当 isSelected = true 则增加selected class,当isCar=true,则增加car class,所以你结果可能是4种组合。


$scope.isSelected=true;
<div ng-class {‘selected‘: isSelected, ‘car‘: isCar}"> </div>

当 isSelected = true 则增加selected class,
    当isCar=true,则增加car class,
    所以你结果可能是4种组合。

个人推荐用2,3两种方式,不建议将class放入controller scope之上,scope需要保持纯洁行,scope上的只能是数据和行为。

时间: 2024-10-11 08:58:51

angular的ng-class的相关文章

Angular(ng表单指令操作)

html部分 ................................................. <!DOCTYPE html><html lang="en" ng-app="myApp"><head> <meta charset="UTF-8"> <title>Angular(ng表单指令操作)</title> <script src="js

angular Error: [ng:areq]

在使用augularjs的时候,爆了个错误: 后来经过对比,原来是我的<html>标签多了点东西

.Net Core + Angular Cli 开发环境搭建

一.基础环境配置 1.安装VS 2017 v15.3或以上版本 2.安装VS Code最新版本 3.安装Node.js v6.9以上版本 4.重置全局npm源,修正为 淘宝的 NPM 镜像: npm install -g cnpm --registry=https://registry.npm.taobao.org 5.安装TypeScript cnpm install -g typescript typings 6.安装 AngularJS CLI cnpm install -g @angul

angular模块

在angular中,模块可以是一个对象.一个方法或一个数组(数组的最后一个元素必须是方法).后面要讲的模块属性和方法,都是针对通过angular.module()方法定义的模块而言的,我称之为angular模块. 通过angular.module()方法定义的模块是唯一的,如果重复定义,后面的就会覆盖前面的定义.不是通过angular.module()定义的模块,比如一个方法或一个数组,这些模块也是唯一的,但是这些模块一旦定义无法被修改. angular模块可以说是一个空对象,因为它本身不包含任

ng 依赖注入

将依赖的对象注入到当前对象,直接去使用依赖的对象即可. 降低耦合度.提高开发速度.. 文件压缩:yui-compressor有两种方案:①CLI(command line interface)java -jar **.jar **.js > **.min.js②webStormfile->settings->tools-->fileWatchers->点击+ ->选中yui compressor js-->设置program(点击按钮在弹窗中选中C盘根目录下的js

Angular实现递归指令 - Tree View

在层次数据结构展示中,树是一种极其常见的展现方式.比如系统中目录结构.企业组织结构.电子商务产品分类都是常见的树形结构数据. 这里我们采用Angular的方式来实现这类常见的tree view结构. 首先我们定义数据结构,采用以children属性来挂接子节点方式来展现树层次结构,示例如下: [ { "id":"1", "pid":"0", "name":"家用电器", "ch

使用ng serve 在Vs Code里调试 anguar 项目

ng serve 是@angular/cli 下的运行命令 我们可以通过下载@angular/cli来生成angular2的模板 npm install -g @angular/cli ng new Anguar-Example --默认会下载依赖包 cd Angura-Example npm install --如果下载了依赖包这步可以不做 ng serve --运行angular 或 npm start 运行项目 默认通过http://localhost:4200/ 访问. 如果我们想用VS

Angular injector注入器

<!DOCTYPE html><html ng-app="myApp"><head lang="en"> <meta charset="UTF-8"> <script src="js/angular.js"></script> <title></title></head><body><div ng-co

Grunt + Bower + Requirejs + Angular

http://www.tuicool.com/articles/ENbI7j3 时间 2014-07-27 22:08:46  Freewind.me原文  http://freewind.me/blog/20140727/2739.html 现在web开发的趋势是前后端分离.前端采用某些js框架,后端采用某些语言提供restful API,两者以json格式进行数据交互. 如果后端采用node.js,则前后端可以使用同一种语言,共享某些可重用的Js代码,并共享构建工具.但很多时候我们可能采用别

前端开发环境搭建 Grunt Bower、Requirejs 、 Angular

现在web开发的趋势是前后端分离.前端采用某些js框架,后端采用某些语言提供restful API,两者以json格式进行数据交互. 如果后端采用node.js,则前后端可以使用同一种语言,共享某些可重用的Js代码,并共享构建工具.但很多时候我们可能采用别的语言,如ruby/java/scala等,此时前后端代码基本上是完全独立的.虽然大家都在同一个项目中,但可以分成互相独立的两块,并且前后端通常使用不同的构建工具. 比如当后端使用Scala时,我们会使用sbt进行项目构建,对scala代码进行