angular [NgClass] [NgStyle],NgIf,[ngSwitch][ngSwitchCase]
[NgClass]
CSS 类会根据表达式求值结果进行更新,更新逻辑取决于结果的类型:
string- 会把列在字符串中的 CSS 类(空格分隔)添加进来,Array- 会把数组中的各个元素作为 CSS 类添加进来,Object- 每个 key 都是要处理的 CSS 类,当表达式求值为真的时候则添加,为假则移除。
<some-element [ngClass]="'first second'">...</some-element> <some-element [ngClass]="['first', 'second']">...</some-element> // 如果 isShow=true,添加 first, second 这两个类, 移除 third 这个类
<some-element [ngClass]="{'first': isShow, 'second': isShow, 'third': !isShow}">...</some-element>
// <some-element [ngClass]="{isShow ? 'first':'second'}">...</some-element>
<some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element> // 如果 isShow=true,添加 class1, class2 , class3 <some-element [ngClass]="{'class1 class2 class3' : isShow}">...</some-element>
[NgStyle]
[ngStyle] 可以通过指定用冒号分隔的键值对来设置一个或多个样式属性
<some-element [ngStyle]="objExp">...</some-element>
<some-element [ngStyle]="{cursor: 'pointer'}">...</some-element>
<some-element [ngStyle]="{marginBottom:'30px',background:'#F1F1F1',border:'1px #d9d9d9 solid'}">...</some-element>
// 动态添加样式
<some-element [ngStyle]="{backgroundColor:(item.leftColor)}">...</some-element>
// 动态添加样式
<some-element [ngStyle]="{'left': (400 - node.level * 18) + 'px'}">...</some-element>
NgIf
通常使用指令的简写形式*ngIf=“condition”,作为插入模板的锚元素的属性提供。Angular将其扩展为更明确的版本,其中锚元素包含在<ng template>元素中。
// 如果condition 为true 则渲染 <div *ngIf="condition">Content to render when condition is true.</div> <ng-template [ngIf]="condition"><div>Content to render when condition is
true.</div></ng-template> // 如果condition 为true 则渲染div, 否则渲染 elseBlock <div *ngIf="condition; else elseBlock">Content to render when condition is true.</div>
<ng-template #elseBlock>Content to render when condition is false.</ng-template> // // 如果condition 为true 则渲染thenBlock , 否则渲染 elseBlock
<div *ngIf="condition; then thenBlock else elseBlock"></div>
<ng-template #thenBlock>Content to render when condition is true.</ng-template>
<ng-template #elseBlock>Content to render when condition is false.</ng-template>
[ngSwitch][ngSwitchCase]
当下一个匹配表达式与开关表达式匹配时添加或删除模板(显示或隐藏视图)的结构指令。
容器上的[ngSwitch]指令指定要与之匹配的表达式。要匹配的表达式由容器中视图的ngSwitchCase指令提供。
匹配的每个视图都会被渲染。
如果没有匹配项,则呈现具有ngSwitchDefault指令的视图。
在[NgSwitch]语句中,但在任何NgSwitchCase或ngSwitchDefault指令之外的元素都保留在该位置。
<container-element [ngSwitch]="switch_expression">
// 匹配时,显示相应的视窗
<some-element *ngSwitchCase="match_expression_1">...</some-element>
<some-element *ngSwitchCase="match_expression_2">...</some-element>
<some-other-element *ngSwitchCase="match_expression_3">...</some-other-element>
// 没有匹配项时的默认情况
<some-element *ngSwitchDefault>...</some-element>
</container-element>
angular [NgClass] [NgStyle],NgIf,[ngSwitch][ngSwitchCase]的更多相关文章
- Angular - - ngClass、ngClassEven、ngClassOdd、ngStyle
这几个都关于样式及类名修改的,所以先把样式代码贴上吧. .red{color:red} .blue{color:blue} 写案例用到的样式就这么简单的两个,下面进入正题. ngClass ngCla ...
- angular的路由跳转,的监听$rootScope.$on
使用angular来做项目时,习惯性的使用第三方路由插件ui-router配置路由.每一个状态都对应着一个页面, 因此对路由状态改变的监听也变的十分重要. 可以使用:$rootScope.$on(…… ...
- angularjs ng-if妙用,ng-if解决父子组件异步传值
壹 ❀ 引 angularjs开发中,组件件相互通信传值是再普遍不过的操作了,比如我在父作用域中获取了一个数据,想要传递给子组件使用,做简单的做法就是通过scope传递,比如这样: <body ...
- angular源码分析:angular中各种常用函数,比较省代码的各种小技巧
angular的工具函数 在angular的API文档中,在最前面就是讲的就是angular的工具函数,下面列出来 angular.bind //用户将函数和对象绑定在一起,返回一个新的函数 angu ...
- angular核心$watch,$digest,$apply之间的联系
浏览器事件发生时,会在浏览器的上下文window中执行,而angular有自己的上下文angular content,angular 事件在自己的上下文angular content中执行. $wat ...
- React 和 Angular 各有什么优缺点,各自又适合什么开发场景?
最近正在学习React,便谈一点自己的浅见. Angular.js首先Angular的背后是Google,所以社区基础是不用担心的,整个生态也已经是非常的完整了,从最基本的Tutorial到Stack ...
- vue,react,angular
一.Vue.js: 其实Vue.js不是一个框架,因为它只聚焦视图层,是一个构建数据驱动的Web界面的库. Vue.js通过简单的API(应用程序编程接口)提供高效的数据绑定和灵活的组 ...
- AngularJS的学习--ng-show/ng-hide/ng-if和ng-switch
在Angular的原生指令中有这几个指令用来控制元素的展示与否,ng-show/ng-hide/ng-if和ng-switch. 在angular性能优化中,我们也常常会用到它. 我们看下他们的区别. ...
- NgStyle和NgIf控制HTML标签显示的区别
通常web开发者会选择将元素样式属性display设为none来隐藏目标元素.采用这种方式,这些元素虽然不可见却仍然保存在DOM中,这样带来的好处是,如果元素不久就需要再次显示,组件不需要重新被初始化 ...
随机推荐
- Leetcode练习题21. Merge Two Sorted Lists
题目描述(easy) Merge Two Sorted Lists Merge two sorted linked lists and return it as a new list. The new ...
- JavaScript 函数——语法,调用,返回值,局部变量,全局变量,未声明变量
JavaScript 函数是被设计为执行特定任务的代码块. JavaScript 函数会在某代码调用它时被执行. ㈠函数 ⑴什么是函数 函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. ⑵ ...
- jdk,jre下载安装
JDK安装https://blog.csdn.net/u012934325/article/details/73441617/jre需要手动生成在JDK安装目录下,的bin cmd执行bin\ jli ...
- JavaWeb_(SSH论坛)_六、点赞模块
基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块 传送门 联合主键 创建p ...
- MyBaits理解?
(1)MyBaits是一个基于Java的持久层框架,支持普通或定制化SQL查询.存储过程以及高级映射,使用XML或注解来配置和映射信息. (2)应用程序使用SQLSessionFactory实例,一个 ...
- SpringBoot整合kafka(安装)
项目路径:https://github.com/zhaopeng01/springboot-study/tree/master/study_14 序言 Kafka 是一种高吞吐的分布式发布订阅消息系统 ...
- gcc编译错误
使用boost的时候遇到一个链接错误 undefined reference to `boost::system::detail::generic_category_instance 出现这个问题的有 ...
- FusionCharts的属性
FusionCharts 的 XML标签属性有一下四种数据类型 * Boolean - 布尔类型,只能为1或者0.例如:<graph showNames='1′ > * Number - ...
- Git 合并两个分支内容
1,将开发分支代码合入到master中 git checkout dev #切换到dev开发分支 git pull git checkout master git merge dev #合并dev分支 ...
- linux的awk使用
awk统计password文件中,登陆shell为“/sbin/nologin”的用户个数 [root@localhost ~]# cat passwd | grep "/sbin/nolo ...