首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Angular 2 ngClass在检查条件时不计算我的表达式

Angular 2中的ngClass指令用于动态地添加或移除HTML元素的CSS类。它可以根据条件来决定是否添加某个CSS类。

在使用ngClass时,如果条件表达式不被计算,可能是由于以下几个原因:

  1. 表达式错误:请确保表达式语法正确,没有拼写错误或语法错误。可以通过在控制台查看错误消息来检查表达式是否正确。
  2. 表达式未绑定到组件属性:ngClass的条件表达式应该绑定到组件的属性,以便在属性值发生变化时触发表达式的重新计算。请确保将表达式绑定到组件的属性。
  3. 表达式计算结果为undefined或null:如果表达式计算结果为undefined或null,ngClass将不会添加任何CSS类。请确保表达式计算结果不为undefined或null。
  4. 表达式计算结果为布尔值:ngClass的条件表达式应该返回一个布尔值,以决定是否添加CSS类。如果表达式计算结果不是布尔值,ngClass将不会添加任何CSS类。
  5. 表达式计算结果为对象:ngClass还支持表达式计算结果为对象的情况。如果表达式计算结果是一个对象,ngClass将根据对象的键值对来决定是否添加CSS类。请确保表达式计算结果是一个对象,并且对象的键是CSS类名,值是布尔值。

总结起来,当Angular 2中的ngClass在检查条件时不计算你的表达式时,你应该检查表达式的语法是否正确,是否绑定到组件的属性,以及表达式的计算结果是否为布尔值或对象。

关于Angular 2的ngClass更详细的信息和示例,你可以参考腾讯云的Angular 2开发文档:Angular 2开发文档 - ngClass

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AngularDart4.0 指南- 模板语法一 顶

表达式应该快速完成,否则用户可能会遇到卡帧,尤其是较慢设备上。 当他们计算成本很高,考虑缓存值。 简单 虽然可以编写相当复杂模板表达式,但是应该避免使用它们。...对Angular来说,一个幂等表达式总是返回完全相同东西,直到它一个依赖值发生变化。 事件循环一个回合期间,依赖值不应该改变。...检查模式下,如果模板表达结果类型和目标属性类型不是赋值兼容,则会抛出一个类型异常。... --> 检查模式类型异常例子 检查模式下,上面的代码将导致一个类型异常:String不是Hero子类型...一次性字符串初始化 满足以下所有条件,省略括号: 目标属性接受一个字符串值。 该字符串是一个固定值,您可以拷贝到模板中。 这个初始值永远不会改变。

5.1K10

Angular 2 + 折腾记 :(2)初步认识angular2,不一样开发模式

---- 基础概念 国内官网--基础 词汇表(又名计算机术语--angular2 & es6 & es7) 速查表:又名demo写法表,里面涵盖了很多写法,相当于一本小字典 关于ng2一堆为什么:..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道参数,后续文档写一个如何自定义管道文章 []="":绑定组件内值[单向,数据流向视图],指令,原生html控件自身属性[value...,src,class,style]等,双引号内支持条件表达式[不完全等同于js条件表达式]或者方法亦或者变量, (click)="": 事件绑定[视图触发改变数据源],同上,支持表达式和方法。。...绑定赋值条件表达式特殊之处: 不支持: 赋值 (=, +=, -=, ...) new运算符 使用;或,链式表达式 自增或自减操作符 (++和--) 不支持位运算|和& 支持: 逻辑运算(...b : 会判断item是否有a这个值,防止undefined或者null让视图渲染报错 ---- 最最最常用内置指令 样式绑定(ngClass) [ngClass]或者[ngStyle]:可以传递一个对象

6.2K20

AngularDart4.0 指南- 模板语法二 顶

当模板表达式计算结果为trueAngular会添加类。 当表达式为false,它将删除类。 This one is not so special 虽然这是切换单个类名好方法,但是同时管理多个类名通常首选NgClass指令。...这些元素所有组件都保留在内存中,Angular可能会继续检查更改。 您应用可能会占用相当可观计算资源,会降低用户不可见性能。...它可以根据切换条件从几个可能元素中显示一个元素。 Angular只把选中元素放入DOM中。...想象一下,诸如a.b.c.d这样长属性路径中某个地方防止空值。 Angular安全导航操作符(?.)是一种更为流畅和方便方法来防止属性路径中出现空。表达式达到第一个空值时会被释放。

29.9K20

Angular 2.x折腾记 :(2)初步认识angular2,不一样开发模式

,ng2开发模式就是类似一个树,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件内用到一些表单元素或者数据绑定..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道参数,后续文档写一个如何自定义管道文章 []="":绑定组件内值[单向,数据流向视图],指令,原生html控件自身属性[value...,src,class,style]等,双引号内支持条件表达式[不完全等同于js条件表达式]或者方法亦或者变量, (click)="": 事件绑定[视图触发改变数据源],同上,支持表达式和方,特殊之处后面解释...绑定赋值条件表达式特殊之处: 不支持: 赋值 (=, +=, -=, ...)...b : 会判断item是否有a这个值,防止undefined或者null让视图渲染报错 最常用内置指令 样式绑定(ngClass) [ngClass]或者[ngStyle]:可以传递一个对象,用来动态判断增加多个样式

9210

Angular核心概念:数据绑定

(达内教育学习笔记)仅供学习交流 Angular数据绑定 Angular核心概念:数据绑定(1)HTML绑定:{{NG表达式}}(2)属性绑定(3)指令绑定(4)事件绑定()(5)双向数据绑定指令...:[(ngModel)]---重点 Angular核心概念:数据绑定 (1)HTML绑定:{{NG表达式}} (2)属性绑定 (3)指令绑定 (4)事件绑定() (5)双向数据绑定指令:[(ngModel...)]---重点 (1)HTML绑定:{{NG表达式}} 效果图: 该组件ts文件添加 export class MyC02Component{ uname = '叮当' age...4.样式绑定:[ngClass] 说明:ngClass绑定值必须是一个对象!...--Angular专用事件:“模型数据改变”ngModelChange-->> 当前用户绑定{{uname}} ts文件 改变值打印控制台上 uname="dingding";

3.5K10

Angular: 最佳实践

Note: 本文中,将尽量避免官方 Angular Style Guide 提及模式和有用实践,而是专注自己经验得出东西,将用例子来说明。...并且模版中每个地方都会显示通知,你可以使用 ngClass 设置未通知样式。现在,我们想将通知状态与枚举值进行比较,我们必须将枚举导入组件。...从模版到组件方法委托比原始逻辑更难。请注意,这里用了比原始更难词语,而不是复杂这个词。这是因为除了检查直接条件语句之外,任何逻辑都应该写在组件类方法中,而不是写在模版中。...模版中写 *ngIf=”someVariable === 1” 是可以,其他很长判断条件就不应该出现在模版中。...读者可能意识到我并没有写关于 Directives 和 Pipes 相关内容,那是因为想写篇详细文章,关于 Angular 中 DOM 是怎么工作

2.8K40

Angular 从入坑到挖坑 - 组件食用指南

,可以通过 angular 内置模板语法与 html 元素进行结合,从而告诉 angular 如何根据我们应用逻辑和数据来渲染页面 4.1.2.1、插值表达式 插值表达式可以将组件中属性值或者是模板上数据通过模板表达式运算符进行计算...模板表达式变量来源 模板本身变量 指令上下文变量 组件成员信息(属性 or 方法) 使用模板表达式,如果变量名多个来源中都存在的话,则模板变量是最优先,其次是指令上下文变量,最后是组件成员...使用模板表达式应该遵循如下原则 简单:正常情况下,应该将业务逻辑或是数据运算放到组件中,模板表达式只作为属性或方法调用 快速执行:模板表达式得出数据应该快速结束,否则就会对于用户体验造成影响...通过模板表达式中使用管道运算符(|)则可以完成相应结果转换 4.3.1、模板表达式特殊运算符 angular 模板表达式是 javascript 子集,相对于常见 javascript 运算符...非空断言运算符用来告诉编译器对特定属性不做严格空值校验,当属性值为 null or undefined 抛错误。

15.8K30

Angular学习笔记(一)

指令 Angular 模板是动态。当 Angular 渲染它们,它会根据指令提供操作对 DOM 进行转换。 服务 服务是一个广义范畴,包括:值、函数,或应用所需特性。...Angular 使用依赖注入来提供新组件以及组件所需服务。 2. 模板与数据绑定 绑定类型可以根据数据流方向分成三类: 从数据源到视图、从视图到数据源以及双向从视图到数据源再到视图。...生命周期 ngOnChanges() 当 Angular 重新设置数据绑定输入属性响应。该方法接受当前和上一属性值 SimpleChanges 对象。...ngOnInit() Angular 第一次显示数据绑定和设置指令/组件输入属性之后,初始化指令/组件。 第一轮 ngOnChanges() 完成之后调用,只调用一次。...ngOnDestroy Angular 销毁指令/组件之前调用。

3.3K20

NG2.4.10升级NG4正式版:修正AOT打包报错一些问题

很多小伙伴迫不及待把项目升级了。。。 然后到群里各种吼,无损升级,没有什么奇葩问题,大家放心升级。。 信了。。。把公司项目给升级了,然后就开始掉坑了。。。...普通开发模式和打包模式皆正常,不正常是AOT打包。。 ---- 问题汇总 升级后第一次打包吓死了,各种错误超过150条。。。部分效果图 ? 初步汇总后基本分为这三类,且看我道来。。。...解决方案: 任何[(ngModel)]变量必须在组件内声明 全局变量也必须在组件内声明,比如你html中写了这种表达式(click)="temp = $event" , temp必须声明 ----...具体去看最新api(v4)和老版本api(v2)比较-- 解决方案:使用get来获取嵌套表单响应值,新写法比较直观也好维护,嘎嘎,看代码 // 旧版本。2.4.10及以下可以生效。。...小伙伴们代码还是严谨些好 closeHandler(e) { this.close.emit(null); } }复制代码 ---- 总结 黑,v4打包后提交明细小了很多,少了一半以上啊

39310

ng 核心模块

可以指定多个src对象。如果你想要保留原始对象,你可以通过一个空目标对象实现:var object = angular.extend({}, object1, object2)。...注意:记住angular.extend不支持递归合并(深度copy)。 angular.noop 这个函数执行任何操作。这个函数可以用于当需要一个函数风格代码。...使用Angular 标记例如{{hash}}一个src属性中不能正确工作:浏览器将从带有{{hash}}URL中获取资源直到Angular替换了这个表达式。使用ngSrc指令可以解决这个问题。...使用Angular 标记例如{{hash}}一个srcset属性中不能正确工作:浏览器将从带有{{hash}}URL中获取资源直到Angular替换了这个表达式。...如果元素上ngDisabled表达式计算后得出真,这个指令将设置disabled指令到元素上 ngChecked The HTML specification does not require browsers

1.2K10

AngularDart4.0 指南- 表单 顶

开发表单,创建一个数据录入体验非常重要,该体验可以通过工作流高效地引导用户。...您可以创造性地设计控件,将它们绑定到数据,指定验证规则和显示验证错误,有条件地启用或禁用特定控件,触发内置视觉反馈等等。 Angular通过许多重复,模板化任务使处理过程变得简单。...Alter Ego和Hero Power上添加类似的[(ngModel)]绑定和ngControl指令。 用model替换诊断绑定表达式。 通过这种方式,您可以确认双向数据绑定适用于整个英雄模型。...每个Angular控制(NgControl)都跟踪自己状态,并通过以下字段成员使状态可供检查: dirty和pristine表明控制值是否已经改变。...'is-valid' : 'is-invalid'; return {validityClass: true}; } 使用此方法返回映射值绑定到NgClass指令 - 模板语法页面中详细了解此指令及其替代方法

17.4K30

AngularDart 4.0 高级-结构指令 顶

您将在本指南中学习到星号(*)是一种便利符号,字符串是一种微型语法,而不是通常模板表达式Angular将这个符号解析成一个围绕宿主元素及其后代标记。...当条件为false,NgIf从DOM中删除它宿主元素,将它从DOM事件(它所依附)中分离出来,将组件从Angular变化检测中分离出来并销毁它。 组件和DOM节点可以被垃圾收集并释放内存。...满足Angular模板中类似需求。 编写一个结构指令 本节中,您将编写一个与NgIf相反UnlessDirective结构指令。 NgIf条件为true显示模板内容。...UnlessDirective条件为false显示内容。... 当条件为假,出现顶部(A)段落并且底部(B)段落消失。 条件为真,顶部(A)段被删除,底部(B)段出现。 ? 概要 您可以尝试实例中查看本指南源代码(查看源代码)。

16K20

angular入门教程_初学者织围巾简单教程慢动作

尤其是2016年,这一整年时间都代表 Angular 项目组中国进行技术推广。在这5年,超过40家企业、开源组织、大学里面进行了大量演讲,在网络上发布了大量视频和文章。...因为你迟早会发现,计算机领域,任何东西研究到最底层都和“算法”、“数据结构”、“设计模式”有关。而就所知,很多朋友并不具备研究这些内容基础知识,不过是白白浪费自己时间而已。...否则,请使用 cnpm 来安装 @angular/cli,原因有三:1、cnpm 缓存服务器国内,你装东西速度会快很多;2、用 cnpm 可以帮你避开某些模块装问题,因为它在服务器上面做了缓存...第2-1课:组件:概述 几乎所有前端框架都在玩“组件化”,而且最近都不约而同地选择了“标签化”这种思路,Angular例外。...关于 Mustache 语法,你需要掌握3点: 它可以获取到组件里面定义属性值。 它可以自动计算简单数学表达式,例如:加减乘除、取模。 它可以获得方法返回值。

3.3K20

Angular学习资料大全和常用语法汇总(让后端程序员轻松上手)

主要是因为前段时间写过一些关于Angualr相关实战文章,有些爱学习小伙伴对这方面比较感兴趣,但是又不知道该怎么入手(因为认识大多数小伙伴都是后端同学),所以今天准备出一篇Angular学习资料汇总和日常开发中使用比较频繁语法总结...规定要使用模板替换文本内容 ng-blur 规定 blur 事件行为 ng-change 规定在内容改变要执行表达式 ng-checked 规定元素是否被选中 ng-class 指定 HTML...HTML 元素 ng-href 为 the 元素指定链接 ng-if 如果条件为 false 移除 HTML 元素 ng-include 应用中包含 HTML 文件 ng-init 定义应用初始化值...规定鼠标指针穿过元素行为 ng-mouseleave 规定鼠标指针离开元素行为 ng-mousemove 规定鼠标指针指定元素中移动行为 ng-mouseover 规定鼠标指针位于元素上方行为...指定 元素 srcset 属性 ng-style 指定元素 style 属性 ng-submit 规定 onsubmit 事件发生执行表达式 ng-switch 规定显示或隐藏子元素条件

5.3K41

Angular数据绑定

我们表单控件中使用[(ngModel)] 样式绑定:为 HTML 元素动态设定 CSS 行内样式,我们使用 [style.style-property]="value" 类名绑定:基于条件或者组件属性...插值和属性绑定 Angular 中,插值 Interpolation 和属性 Property 绑定都用来传递组件类数据到模板(视图)中。嗯~区别是它们怎么实现这个任务,我们在哪里使用它们。...下面是 Angular 中 Interpolation 插值绑定和 Property 绑定主要区别: 语法 Interpolation 绑定:插值绑定在模板 HTML 内容中,使用{{}}来包含表达式或者变量...表达式 vs 属性 Interpolation 绑定:它是为单个表达式或者变量而设计。你不可以使用它绑定属性,只能用来显示动态内容。 Property 绑定:它允许你直接绑定元素属性。...两者 Angular 应用中都很重要,我们根据使用场景来选择使用。 事件绑定 事件绑定允许我们将事件(比如按键、点击、悬停、触摸等)绑定到数组中一个方法。它是从视图到组件单向绑定。

15510
领券