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

表单在angular 2中未验证[ngClass]的用法

在Angular 2中,ngClass是一个用于动态设置HTML元素的class属性的指令。它可以根据条件来添加或移除特定的CSS类。

在表单验证方面,ngClass可以用于根据表单的验证状态来动态设置样式。通过与表单控件的valid属性结合使用,可以根据表单控件的验证状态来添加或移除CSS类。

下面是一个示例:

代码语言:html
复制
<form>
  <div class="form-group" [ngClass]="{'has-error': !username.valid && username.touched}">
    <label for="username">Username</label>
    <input type="text" id="username" class="form-control" required minlength="5" #username="ngModel">
    <div *ngIf="username.invalid && username.touched" class="error-message">Username is required and must be at least 5 characters long.</div>
  </div>
  
  <div class="form-group" [ngClass]="{'has-error': !password.valid && password.touched}">
    <label for="password">Password</label>
    <input type="password" id="password" class="form-control" required minlength="8" #password="ngModel">
    <div *ngIf="password.invalid && password.touched" class="error-message">Password is required and must be at least 8 characters long.</div>
  </div>
  
  <button type="submit" class="btn btn-primary" [disabled]="!username.valid || !password.valid">Submit</button>
</form>

在上面的示例中,我们使用ngClass指令来动态设置表单控件所在的div元素的class属性。当表单控件的valid属性为false且touched属性为true时,我们添加了一个名为"has-error"的CSS类,用于显示错误状态。

此外,我们还使用了模板引用变量(#username和#password)来引用表单控件,并通过它们的invalid和touched属性来判断是否显示错误消息。

推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云数据库MySQL。

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

相关·内容

Angular: 最佳实践

如果你有很多重复使用内容,这将很好用,我们可不想讲相同代码编写多次吧。假设有这么一个场景:我们有几个页面,都要展示系统通知。每个通知都有已读/读两种状态,当然,我们已经枚举了这两种状态。...并且在模版中每个地方都会显示通知,你可以使用 ngClass 设置未通知样式。现在,我们想将通知状态与枚举值进行比较,我们必须将枚举导入组件。..., status: Statuses.Read} ]; statuses = Statuses } 复制代码 这里,我们为每个包含读通知 HTML 元素添加了 unread 类。...比如,你想在模版中为正确填写表单控件添加 has-error 类(也就是说并非所有的校验都通过)。...,甚至可以轻松地测试我们验证是否与单元测试一起正常工作,而无需深入查看视图。

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

    ---- 基础概念 国内官网--基础 词汇(又名计算机术语--angular2 & es6 & es7) 速查表:又名demo写法,里面涵盖了很多写法,相当于一本小字典 关于ng2一堆为什么:...对应国际官网 GLOSSARY CHEAT SHEET NGMODULE FAQS ARCHITECTURE OVERVIEW 英文水平比较好推荐国际官网,这边API更新很及时 ---- angular-cli...'@angular/platform-browser'; // 这也是一个装饰器,用来定义模块和组件相关,比如服务,组件元素,指令,导入导出模块识别 // 每个模块定义必须有这个才能生效...}) export class AppModule { }复制代码 ---- 常见模板指令用法解释 {{item | SliceStr:1:2:'...' }}: 可以响应组件内对应item字段值变化...b : 会判断item是否有a这个值,防止undefined或者null让视图渲染报错 ---- 最最最常用内置指令 样式绑定(ngClass) [ngClass]或者[ngStyle]:可以传递一个对象

    6.2K20

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

    基础概念 官方中文社区一把梭: 你想要都概念基本可以在这里找到。 angular-cli 启动 src是开发目录,生产打包后会产生一个dist目录; 初步说下你从启动到浏览器看到app works!... main.ts // 引入生产模式,控制关闭开发模式,函数来 import { enableProdMode } from '@angular...'@angular/platform-browser'; // 这也是一个装饰器,用来定义模块和组件相关,比如服务,组件元素,指令,导入导出模块识别 // 每个模块定义必须有这个才能生效...}) export class AppModule { } ``` 常见模板指令用法解释 {{item | SliceStr:1:2:'...' }}: 可以响应组件内对应item字段值变化...b : 会判断item是否有a这个值,防止undefined或者null让视图渲染报错 最常用内置指令 样式绑定(ngClass) [ngClass]或者[ngStyle]:可以传递一个对象,用来动态判断增加多个样式

    10110

    AngularDart4.0 指南- 表单 顶

    您可以创造性地设计控件,将它们绑定到数据,指定验证规则和显示验证错误,有条件地启用或禁用特定控件,触发内置视觉反馈等等。 Angular通过许多重复,模板化任务使处理过程变得简单。...这个表格中三个字段中两个是必需。 遵循材料设计准则,必填字段带有星号(*)。 如果您删除了英雄名称,表单将以吸引人注意风格显示验证错误: ?...删除#spy模板引用变量和使用它诊断。 作为类绑定替代方法,可以使用NgClass指令来设置控件样式。...提交标志变为真,表格消失。 您将看到表格中显示英雄模型值(只读)。 ? 该视图包含一个编辑按钮,其单击事件绑定将清除提交标志。 当您单击编辑按钮时,该消失,并且可编辑表单重新出现。...概要 Angular表单为数据修改,验证等提供支持。 在此页面中,您学习了如何使用以下功能: 一个HTML表单模板和一个带有@Component注解表单组件类。

    17.5K30

    Ionic4兼容IE浏览器处理

    在一般场合,Ionic4运行在手机端,没必要去兼容IE,但还是可以了解一下,以免有这样需求。 Ionic4,它更趋向于一个UI框架,然后可配套Angular、React、Vue等框架使用。...以Angular版本为例,兼容IE浏览器,主要是JS+CSS语法和用法调整处理。 1. JS,可以使用内置Polyfill方案。...Angular项目默认提供了Polyfill支持,打开Ionic4项目中src目录,里面有自动生成polyfill.ts文件,打开可以看到这样内容: /**********************...import 'core-js/es6/weak-map'; import 'core-js/es6/set'; /** IE10 and IE11 requires the following for NgClass...If you use AOT (and only Angular decorators), you can remove. import 'core-js/es7/reflect'; 为了减轻打包大小

    1.5K20

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

    内置指令 内置属性指令       NgClass       NgStyle       NgModel ([(ngModel)]) 内置结构指令      NgIf      NgFor          ...一些合法HTML在模板中没有多大意义。 ,和元素没有用处。 剩下一切都是一致。 您可以使用组件和指令出现新元素和属性来扩展模板HTML词汇。...一种新心智模式 借助数据绑定所有功能以及使用自定义标记扩展HTML词汇能力,将HTML模板视为HTML Plus是很有诱惑力 它确实是HTML Plus。...[disabled]="isUnchanged">Cancel is disabled 另一个是设置一个指令属性: [ngClass...元素属性(property)可能是更常见目标,但Angular首先查看名称是否是已知指令属性(property),如下例所示: [ngClass]

    5.1K10

    Angular数据绑定

    原文链接:Data Binding in Angular - 原文作者 Amit Dhiman 本文采用意译方式 插值绑定: 将动态值插入到模版内容中,我们使用 {{}} 符 属性(Property...style.style-property]="value" 类名绑定:基于条件或者组件属性,为 HTML 元素动态添加或者移除 CSS 类名,我们分别使用 [class.class-name]="condition" 或 [ngClass...下面是 Angular 中 Interpolation 插值绑定和 Property 绑定主要区别: 语法 Interpolation 绑定:插值绑定在模板 HTML 内容中,使用{{}}来包含表达式或者变量...用法 Interpolation 绑定:用于将动态内容插入到模板 HTML 中,例如在文本元素中显示组件属性。...两者在 Angular 应用中都很重要,我们根据使用场景来选择使用。 事件绑定 事件绑定允许我们将事件(比如按键、点击、悬停、触摸等)绑定到数组中一个方法。它是从视图到组件单向绑定。

    19310

    Angular快速学习笔记(2) -- 架构

    0. angularangular js angular 1.0 google改名为Angular js 新版本,2.0以上,继续叫angular,但是除了名字还叫angular,已经是一个全新开发框架了...declarations(可声明对象) —— 那些属于本 NgModule 组件、指令、管道 exports(导出) —— 那些能在其它模块组件模板中使用可声明对象子集。...imports(导入) —— 那些导出了本模块中组件模板所需其它模块。 providers —— 本模块向全局服务中贡献那些服务创建器。 这些服务能被本应用中任何部分使用。...和 ngClass)。...通过把组件中和视图有关功能与其他类型处理分离开,你可以让组件类更加精简、高效 组件不应该定义任何诸如从服务器获取数据、验证用户输入或直接往控制台中写日志等工作。 而要把这些任务委托给各种服务。

    5.2K20

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

    2-13 封装并发布你自己组件库 3-1 指令简介 3-2 自定义指令 3-3 直接在组件里面操作 DOM 4 模块 @NgModule 5-1 路由概述 5-2 路由基本用法 5-3 模块预加载...模板内局部变量 属性绑定、事件绑定、双向绑定 在模板里面使用结构型指令 *ngIf、*ngFor、ngSwitch 在模板里面使用属性型指令 NgClass、NgStyle、NgModel 在模板里面使用管道格式化数据...有两个办法: 加一层空 div 标签 加一层 在模板里面使用属性型指令 使用频率比较高3个内置指令是:NgClass、NgStyle、NgModel。...NgClass 使用案例代码: 同时批量设置多个样式<button class="btn btn-success" (click...课:路由:基本用法 第5-3课:路由:模块预加载 第5-4课: 路由:路由守卫 第5-5课:路由:多重出口 第6-1课:表单:快速上手 第6-2课: 表单:双向数据绑定 第6-3课:表单:表单校验

    3.3K20

    Angular开发者手册重点翻译之指令(一)文本和属性绑定ngAttr属性绑定

    Angularjs拥有一些内建指令,像ngBind、ngModel和ngClass。...非常类似于你创建自己controller和service,你可以创建你自己指令个angularjs使用,党angular初始化启动你应用程序,html编译器将遍历你DOM元素并且去匹配指令。...(比如ngBind指令使用ng-bind),假如你想使用一个HTML验证工具,你可以换为使用data-前缀样式(比如ngBind指令使用data-ng-bind)。...其他样式,在一些遗留因素上也是可接受,但是我们建议你避免使用它们 所有Angular提供指令匹配属性名、标签名、注释或者类名,下面演示了一个指令可以被引用几种方式: </my-dir...,同样,不要给自己指令加上ng或者可能会和未来版本angular引起冲突前缀。

    1.7K60

    AngularDart 4.0 高级-结构指令 顶

    Angular拥有强大模板引擎,可以让我们轻松操纵元素DOM结构。 本指南介绍Angular如何用结构指令操纵DOM,以及如何编写自己结构指令来完成相同操作。 尝试一下实例(查看源代码)。...但是如果没有一个令人信服理由让他们保持身临其境,你应该首先去除用户看不到DOM元素,并用像NgIf这样结构指令来恢复使用资源。 这些相同考虑适用于每个结构指令,无论是内置还是定制。...ngFor字符串之外所有内容仍在宿主元素()中且移动到时保持不变。 在这个例子中,[ngClass] =“odd”保留在上。...该前缀属于Angular。 选择适合您或您公司简短内容。 在这个例子中,前缀是my。 指令类名称以Directive结尾。 Angular自己指令不会。...condition" [ngClass] = "{ a: condition, b: !

    16.1K20

    angular面试题及答案_angular面试

    指令分类 组件:用于构建UI组件,继承于Directive类 属性指令:用于改变组件外观或行为 ngClass ngStyle 结构指令:用于动态添加或删除DOM元素来改变DOM布局 ngIf ngFor...在服务器端验证凭据并返回JSON Web Token(JWT)。JWT是一个JSON对象,它有关于当前用户一些信息或属性。一旦JWT返回给给客户端,客户端或用户将被该JWT所标记。...Authorization(授权):登录成功后,经过身份验证或真正用户不能访问所有内容。用户未被授权访问其他人数据,他/她被授权访问某些数据。 16. AOT编译 和JIT编译?...强大功能比如动画和事件处理。 使用mvc模式。 支持双向数据绑定。 支持依赖注入, restful service和有效验证。 28. Angular核心部件有哪些?...最小化组件类代码 不易于单元测试 Reactive Forms (响应式表单) 特点 比较灵活 适用于复杂场景 简化了HTML模板代码,把验证逻辑抽离到组件类中

    11K120

    Angular 从入坑到挖坑 - 表单控件概览

    对应官方文档地址: Angular 表单简介 响应式表单 模板驱动表单 表单验证 配套代码地址:angular-practice/src/forms-overview 二、Contents Angular...而响应式表单在表单数据发生变更时,FormControl 实例会返回一个新数据模型,而不是直接修改原来数据模型 4.2、模板驱动表单 通过使用表单专属指令(例如 ngModel 进行双向数据绑定)...4.2.3、数据有效性验证 某些时候需要对于用户输入信息做有效性验证,此时可以在控件上添加上原生 HTML 表单验证器来设定验证条件,当表单控件数据发生变化时,angular 会通过指令方式对数据进行验证...在模板驱动表单中,因为不是直接使用 FormControl 实例,因此这里应该在模板上添加一个自定义指令来完成对于控件数据校验 使用 angular cli 创建一个用来进行表单验证指令 ng...g directive direactives/hero-validate 在创建完成指令之后,我们需要将这个指令将该验证器添加到已经存在验证器集合中,同时为了使这个指令可以与 angular 表单集成在一起

    18.9K20

    Angular快速学习笔记(3) -- 组件与模板

    显示数据 在 Angular 中最典型数据显示方式,就是把 HTML 模板中控件绑定到 Angular 组件属性。...在 Angular 中,组件扮演着控制器或视图模型角色,模板则扮演视图角色。 ### 模板中 HTML HTML 是 Angular 模板语言。几乎所有的 HTML 语法都是有效模板语法。...属性绑定 <div [ngClass...在这种模式下,有类型变量默认是不允许 null 或 undefined 值,如果有赋值变量,或者试图把 null 或 undefined 赋值给不允许为空变量,类型检查器就会抛出一个错误 Angular...这意味着你可以把关于 CSS 那些知识和技能直接用于 Angular 程序中,例如:样式、选择器、规则以及媒体查询等。

    15.2K30

    【玩转腾讯云】手把手教你使用VueReactAngular三大框架开发Pagination分页组件

    3.3 Angular版本 和Vue/React这种专注View视图层轻量级框架不同,Angular是一个很重框架,配备非常完整,Web开发过程中你需要一切,Angular框架都给你提供好了,你只需要随手取用即可...我们一起来看看怎么开发一个Angular组件吧。 同样是使用Angular CLI创建一个基础Angular项目,并输入命令npm start命令启动。...和Vue/React差别比较大: 一是外部传参方式不同,Angular使用@Input这个装饰器表示外部参数; 二是Angular使用ngFor指令渲染列表数据; 三是Angular优化DOM对比方式是使用...接下来我们可以看看快捷翻页效果,为了清楚看出当前处于哪一页,我们暂时将中间为哦实现页码按钮组显示成当前页码: <!...== 1" [ngClass]="{ number: true, active: totalPage == current }" (click)="setPage

    7.8K00
    领券