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

Angular 8 setErrors将控件设置为无效,但不更新模板

Angular是一种流行的前端开发框架,它允许开发人员构建可扩展的单页应用程序。在Angular中,表单是一个常见的组件,而setErrors方法是一个用于在表单控件中设置错误的方法。

当我们想要将一个控件设置为无效(invalid)时,可以使用setErrors方法。该方法接受一个包含错误信息的对象作为参数,然后将该控件标记为无效,并将错误信息存储在控件的errors属性中。

使用setErrors方法有以下几个关键点需要注意:

  1. 错误对象的键是错误的名称,值是错误的详细信息。例如,{required: true}表示该控件缺少必填项。
  2. 如果一个控件有多个错误,可以使用多个键值对来表示。例如,{required: true, minlength: {requiredLength: 5, actualLength: 3}}表示该控件既缺少必填项,又不满足最小长度要求。
  3. 如果要将控件设置为有效(valid),可以将null或空对象传递给setErrors方法。

在Angular中,当一个控件被设置为无效后,并不会立即更新模板。为了使模板能够反映出控件的新状态,我们需要通过调用控件所在表单的updateValueAndValidity方法来手动触发更新。

以下是一些常见的应用场景和优势:

  • 应用场景:在表单验证过程中,当用户输入无效数据时,我们可以使用setErrors方法将表单控件设置为无效,并将错误信息显示给用户。这有助于改善用户体验并提供即时反馈。
  • 优势:
    1. 灵活性:使用setErrors方法,我们可以根据具体的业务逻辑来设置和管理表单控件的错误。
    2. 可定制性:错误信息可以根据需求进行自定义,以便更好地适应应用程序的需求。
    3. 验证交互:通过将控件设置为无效,我们可以在用户与表单交互时立即显示错误信息,提高用户体验和数据的准确性。

腾讯云提供了一系列与云计算相关的产品,其中与前端开发密切相关的产品包括CDN加速、云服务器、云存储等。你可以通过腾讯云的官方文档了解更多关于这些产品的详细信息和使用方法。

  • 腾讯云CDN加速产品介绍链接:https://cloud.tencent.com/product/cdn
  • 腾讯云云服务器产品介绍链接:https://cloud.tencent.com/product/cvm
  • 腾讯云云存储产品介绍链接:https://cloud.tencent.com/product/cos

请注意,上述答案是基于问题提供的信息和要求来回答的,如果有其他具体的问题或需求,请提供更多信息,以便我能够给出更精确和全面的答案。

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

相关·内容

AngularDart4.0 指南- 表单 顶

一路上你将学习如何: 用组件和模板构建一个Angular表单。 使用ngModel创建读取和写入输入控制值的双向数据绑定。 跟踪状态变化和表单控件的有效性。...使用ngModel双向数据绑定语法将数据属性绑定到每个表单控件。 为每个表单输入控件添加一个ngControl指令。 添加自定义CSS来提供视觉反馈。 显示和隐藏验证错误消息。...指令的exportAs属性告诉Angular如何将引用变量链接到指令。 您将name设置为“ngForm”,因为ngModel指令的exportAs属性是“ngForm”。...删除#spy模板引用变量和使用它的诊断。 作为类绑定的替代方法,可以使用NgClass指令来设置控件的样式。...输入控件(通过模板引用变量访问)的valid 属性,用于检查控件有效性以及显示/隐藏错误消息。 NgForm.form的有效性来设置提交按钮的启用状态。

17.5K30

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

响应式表单 建立表单 由组件隐式的创建表单控件实例 在组件类中进行显示的创建控件实例 表单验证 指令 函数 在表单数据发生变更时,模板驱动表单通过修改 ngModel 绑定的数据模型来完成数据更新,...在数据验证失败的情况下,对于系统来说,表单是不允许提交的,因此可以将提交事件绑定到表单的 ngSubmit 事件属性上,通过模板引用变量的形式,在提交按钮处进行数据有效性判断,当无效时,禁用表单的提交按钮...,在使用时,通过将控件的实例赋值给属性,后续则可以通过监听这个自定义的属性来跟踪表单控件的值和状态 import { Component, OnInit } from '@angular/core';...某些情况下,我们只是想要更新控件组中的某个控件的数据值,这时需要使用 patchValue 的方式进行更新 import { Component, OnInit } from '@angular/core...,每个控件名对应的值都是一个数组,第一个值为控件的默认值,第二项和第三项则是针对这个值设定的同步、异步验证方法 import { Component, OnInit } from '@angular/core

18.9K20
  • Angular 6.x 表单快速入门

    ,把验证逻辑抽离到组件类中 手动创建 Form Model (同步) 方便的跟踪表单控件值的变化 易于动态添加表单控件 易于单元测试 本文主要介绍 Template Driven Forms (模板驱动式表单...目前 Angular 支持的内建 validators 如下: required - 设置表单控件值是非空的 email - 设置表单控件值的格式是 email min - 设置表单控件值的最小值 max...- 设置表单控件值的最大值 minlength - 设置表单控件值的最小长度 maxlength - 设置表单控件值的最大长度 pattern - 设置表单控件的值需匹配 pattern 对应的模式...表单控制的状态: valid - 表单控件有效 invalid - 表单控件无效 pristine - 表单控件值未改变 dirty - 表单控件值已改变 touched - 表单控件已被访问过 untouched...valid状态:{{userName.valid}} - 表示控件有效 Name控件的invalid状态:{{userName.invalid}} - 表示控件无效

    4.6K20

    (转) 别再对 Angular 表单的 ControlValueAccessor 感到迷惑

    然后我将展示如何封装第三方组件作为 Angular 组件,以及如何使用输入输出机制实现组件间通信(译者注:Angular 组件间通信输入输出机制可参考官网文档),最后将展示如何使用 ControlValueAccessor...),你需要把更新的值传给这个回调函数,这样对应的 Angular 表单控件值也会更新(译者注:这一点可以参考 Angular 它自己写的 DefaultValueAccessor 的写法是如何把 input...// and set this value to the native control // 设置 Angular 表单控件值更新监听器,每当 Angular 表单控件值更新,原生控件值也更新...组件封装器 由于 Angular 为所有默认原生控件提供了控件值访问器,所以在封装第三方插件或组件时,需要写一个新的控件值访问器。...当然我们也可以使用 ngOnChanges 生命周期钩子来追踪输入属性 value 值的变化,一旦其值变化,我们就将该值设置为 slider 控件的值。

    3.8K20

    当nz-checkbox-group多选框组遇上必选校验

    当nz-checkbox-group多选框组遇上必选校验 Angular2 ng-zorro-antd checkbox 今天表单中用到ng-zorro-antd组件的多选框nz-checkbox-group...oneOption中的值,4、false 选择一个选项后:1、true,2、false,3、oneOption中的值+选中的value,4、false 从而始终无法触发显示 “通知范围必选” 第一次尝试 最开始尝试是将this.validateForm.value.scopes...在提交时先赋值为[],再检测checked状态,赋值。...== 0){ this.getFormControl('one').setErrors({'required':true}); } 发现上面的2可以变成true了,但1始终是false,导致无效。...响应式表单(Reactive Form) 时, 的 nzValidateStatus 会自动从 NgControl 中获取数据,也可以手动指定特定的 NgControl组件将表单校

    4.4K20

    Angular系列教程-第四节

    1.表单 Angular 提供了两种不同的方法来通过表单处理用户输入:响应式表单和模板驱动表单。...(需要引入ReactiveFormsModule) 模板驱动的表单是我们实例化好一个类的数据之后,在html中使用 NgForm 指令后将数据和表单进行绑定,使用[(ngModel)]来将表单的数据和和视图进行双向绑定...,NgForm 指令为 form 增补了一些额外特性。...和更新) formgroup使用 表单提交 更新部分内容(patchValue) 表单验证(导入Validators,设置字段属性) 表单状态(status) formarray(管理任意数量控件....内置验证器 min 此验证器要求控件的值大于或等于指定的数字 max 此验证器要求控件的值小于等于指定的数字 required 此验证器要求控件具有非空值 requiredTrue 此验证器要求控件的值为真

    2.8K50

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

    事件发生时,处理程序执行模板语句。 模板语句通常包含一个接收器,它响应事件执行一个动作,例如将HTML控件的值存储到模型中。...双向绑定([(…)]) 您经常希望显示数据属性,并在用户进行更改时更新该属性。 元素另一方面为元素更改事件组合设置特定元素属性和监听。...模板输入变量 hero之前的let关键字创建一个名为hero的模板输入变量。 ngFor指令迭代由父组件的heroes属性返回的heroes,并在每次迭代期间将hero设置为列表中的当前项目。...将引用变量的值设置为声明的元素。...但是NgForm指令有,它解释了如果heroForm.form.valid无效并且将整个表单控件树传递给父组件的onSubmit方法,您可以禁用提交按钮。

    30K20

    Angular2 VS Angular4 深度对比:特性、性能

    动态载入: 这是之前的Angular版本均不具备的功能,Angular2包含了这个功能,即使在开发人员忙碌时,也能够添加新的指令或控件。 模板: 在Angular2中,模板编译过程是异步的。...模板指令:可以将HTML转换为可复用的模板。该模板的实例化以及插入到DOM过程可以完全由指令创建者控制。例如ng-repeat和ng-if。...模板越是复杂,节省的就越多。 动画包: Angular4的开发人员将动画从Angular的核心部分提取出来,并将它们放在独立的包中。...TypeScript 2.1和2.2兼容性: Angular4开发组将Angular升级为更新版本的TypeScript。这将提高ngc的速度,方便开发人员将在编码过程中更好的进行类型检查。...模板的源映射: 每当模板中的某些内容出现错误时,都将创建源映射,为原始模板提供有意义的说明内容。 结论: 对于仍处于学习阶段的人来说,Angular会有点混乱。

    8.7K20

    Angular8稳定版修改概述

    SVG作为模板 您现在可以将SVG文件用作模板。到目前为止,我们只能选择使用内联HTML或外部HTML作为模板。...Ivy渲染引擎实验 虽然早在angular 6的时候就提出了Ivy,但是Ivy仍处于试验阶段,通过Angular 8版本,您可以通过创建一个enable-ivy标志设置为true 的应用程序来测试它,如下所示...团队希望为使用AngularJS的所有开发人员提供支持,并帮助他们升级到Angular。...需要注意的是,设置static: true将不允许您从动态模板分辨率(例如*ngIf)获得结果。 添加了原理图支持以将现有代码迁移到此语法,因为将使用此语法Ivy 。...结论 以上就是angular 8版本的一些改动。总体来说变化不是很大,延续了angular每年一个稳定版的习惯。 原文链接

    4.5K20

    Angular6自定义表单控件方式集成Editormd

    (isDisabled: boolean): void; } writeValue:在初始化的时候将formControl的值传递给原生表单控件(即,将模型中的新值写入视图或 DOM 属性中); registerOnChange...:用来获取原生表单控件的值更新时通知Angular表单控件更新的函数(即,设置当控件接收到 change 事件后,调用的函数) registerOnTouched:用来获取通知用户正在交互的函数(即,设置当控件接收到...(isDisabled: boolean):设置DISABLED状态时做的执行的方法。即,当控件状态变成 DISABLED 或从 DISABLED 状态变化成 ENABLE 状态时,会调用该函数。...- 用于 select 选择控件 - CheckboxControlValueAccessor - 用于 checkbox 复选控件 至于原生表单控件和Angular表单控件能够保持一致的原理,可以看下...4.x 自定义表单控件 【荐】深入Angular自定义表单控件 Angular集成Editor.md的Markdown编辑器,支持NgModel双向绑定

    5.2K20

    如何在 ASP.NET MVC 中集成 AngularJS(1)

    要打开 html5Mode,你需要在 Angular 的配置过程中,将 $locationProviderhtml5Mode 设置为 true,如下所示: // CodeProjectRouting-production.js...所有的客户的 Angular 视图和控件器将驻留在客户子文件夹中,所有的产品的 Angular 视图和控件器将驻留在产品子文件夹中 。...将安装插件下载到名为自动版本设置的工具菜单中。该插件自带了配置工具,它允许你配置主要和次要版本号,以便每次编译时,自动的更新 AssemblyInfo.cs 文件。...这样会以 MVC 默认工程模板的形式,将 Index.cshtml MVC Razor 视图传递到用户输出的主页面内容中。 这个应用程序的目标是使用 Angular 视图取代所有的 MVC 视图。...5.0 兼容,将大幅提高工作效率;AngularJS 开发时,可以借助 Wijmo 这款为企业应用程序开发而推出的一系列包含 HTML5 和 JavaScript 的开发控件集,无论应用程序是移动端、

    7.6K60

    移除 View Engine 转用 Ivy,盘点Angular 12的重要更新

    谷歌将 Ivy 描述为下一代编译与渲染管道,能够显著提升 AOT(ahead of time)编译速度。Angular 团队提到,View Engine 将在后续版本中被彻底移除。...在更新至 Angular 12 之后,应用会通过 ng update 进行更新并自动切换为新的 API。 提供相关工具,可使用最新算法将旧版本地化 ID 迁移为新 ID。...对于语言服务,新版本仅在模板中提供 Angular 属性补全功能。 对于 compiler-cli,新版本为请求提供 context 选项以保障属性数据的类型安全。...此格式可用于生成 JSON 文件,进而将旧版消息 ID 映射为规范 ID。 严格 null 检查将报告各可能为 null 的片段。这同样是一项重大变化。...向 routerLinkActiveOptions 中引入更多微调控件。 允许您自定义路由器出口实施方法。

    4.5K10

    【译】.NET Core 3.0 Preview 3中关于ASP.NET Core的更新内容

    运行时编译 Worker服务模板 gRPC模板 Angular模板已更新为Angular 7 SPA认证 SignalR与Endpoint路由集成 SignalR Java客户端支持长轮询 其他详细信息和已知问题...设置预渲染,Razor组件项目模板不会有静态HTML文件。...EditForm将EditContext设置为一个级联相关的值,该值用于跟踪关于编辑过程的元数据(例如,已修改的内容、当前验证消息等)。...Angular模板更新到了Angular 7 Angular模板更新到了Angular 7。在 .NET Core 3.0 发布稳定版本之前,我们预计会更新到Angular 8。...在本节中,我们将展示如何创建一个新的Angular或React模板,该模板允许我们对用户进行身份验证并访问受保护的API资源。

    22.7K10

    如何使用WijmoJS 纯前端设计器,快速生成 Angular 应用

    例如,您可以使用IntelliSense为新控件创建Angular标记,然后使用可视化设计器编辑标记。...要返回FlexGrid表格控件的设置,请单击“属性”窗格中的“后退”按钮。 如果对设计器中所做的更改感到满意,请单击WijmoJS 徽标下方的“保存”按钮以更新原始源文件的编辑器并将其重点关注。...单击axisY属性的齿轮图标,然后将format属性设置为字符串c0,表示零小数位的货币值。 单击“属性”窗格中的“后退”按钮以返回FlexChart的设置。...接下来,单击图例属性的齿轮图标,并将其位置设置更改为“底部”。 像以前一样单击后退按钮返回FlexChart设置。 通过将其标题属性设置为Most Active,为图表添加标题。...但是,当扩展更新源文件时,将保留原始控件标记中定义的任何现有事件处理程序。 设计器的独立命令会记住当前工作空间上下文中可视化设计界面的状态,即使您关闭并重新打开VS代码也是如此。

    5.4K40

    AngularDart4.0 指南- 显示数据 顶

    您可以通过将HTML模板中的控件绑定到Angular组件的属性来显示数据。 在这个页面中,您将创建一个包含英雄列表的组件。 您将显示英雄名单的列表,并有条件地在列表下方显示一条消息。...使用插值,可以将属性名称放在视图模板中,并用双花括号括起来:{{myHero}}。 按照设置说明创建名为displays_data的新项目。...当这些属性改变时,Angular会更新显示。 更准确地说,重新显示是在与视图相关的某种异步事件之后发生的,例如按键,计时器完成或对HTTP请求的响应。...模板内嵌或模板文件? 您可以将组件的模板存储在两个地方之一中。...Angular为列表中的每个项目复制,将hero变量设置为当前迭代中的项目(英雄)。 Angular使用该变量作为双曲花括号内插的上下文。

    5.3K10

    JeecgBoot 3.4.2 版本发布,Vue3版本大升级

    ,未读的排到最上面编译后主题色切换不生效黑屏的问题系统通知图标,没有随着主题色变修复labelWidth设置无效的问题form表单label宽度支持设置,默认去掉一些表单的宽度设置,默认自适应升级and3...,如表单宽度效果有问题,可以去掉宽度设置新功能升级新版系统通知风格(支持直接打开业务单)消息模板新增Markdown类型在线文件存储,文档预览文档采用pdf模式预览钉钉和企业微信推送支持markdown...版本升级issues/I5BFTY下拉多选、年份选择更新issues/I5C9BY用户列表 判断是否是admin的功能无效issues/I5N591部门选择弹框出来数据有遮挡issues/I5IWFMvue3...模板生成报错issues/I5MU66到首页动画就进不去了issues/I5MTLQ更换头像失败issues/I5Q2W8代码生成器里选择3列表单,运行后lable的宽度很窄issues/I5L3SK表格展示...版本中,online报表 动态参数设置无效issues/I5HB7P主附表启用联合查询后导入有问题issues/111JVxeTable中的inputNumber不能输入小数issues/I5IHN7积木报表无法保存

    2.1K30

    Angular和Vue.js 深度对比

    基于 HTML 模板的语法   Vue 允许开发者直接将渲染的 DOM 绑定到底层的Vue实例数据上。这是一个很有用的功能,因为它可以让开发者扩展基本的 HTML 元素,来保存可复用的代码。...测试 在 Angular 中,可以单独对控制器和指令进行单元测试。Angular 允许开发人员进行端到端和单元测试运行器设置,这意味着也可以从用户角度进行测试。 4....文档对象模型(DOM) Vue 通过最少量的组件重新渲染,可以将模板预编译为纯 JavaScript。这个虚拟 DOM 允许进行大量的优化,这是 Vue 和 Angular 之间的主要区别。...启发,也借用了 Angular 的模板语法。...Angular 和 Vue.js 的版本发布 2017年6月8日发布了 Vue.js v2.3.4的最新稳定版本 。在此版本之前,还有13个版本。 Angular 4  于2017年3月发布。

    5.4K30

    答案:Excel VBA编程问答33题,继续……

    通过将KeyCode参数设置为0。 5.在用户窗体上对齐控件的最快方法是什么? 通过使用“格式”菜单上的“对齐”命令。 6.假设一个控件被重叠控件隐藏。在运行时,如何使隐藏的控件可见?...调用具有fmTop参数的隐藏控件的ZOrder方法。 7.如何防止用户通过制表键将焦点移到控件上? 将控件的TabStop属性设置为False。 8.如何命名事件过程?...9.通过将Application.EnableEvents属性设置为False不会禁用哪些事件? 用户窗体上的事件。 10.当用户在任何工作表中进行修改操作时,将触发哪个事件?...必须使用“项目工程属性”对话框中的“保护”选项卡,将VBA工程与设置给工作簿的任何密码分开锁定。 17.是非题:一个bug阻止程序运行。 错误。bug会阻止程序正常运行,但不会阻止程序运行。...将鼠标指针悬停在变量名称上。 22.是非题:监视窗口中的值在程序运行时会不断更新。 错误。监视值仅在程序进入中断模式时才更新。 23.VBA如何将bugs报告给程序员? 不会。

    4.2K20
    领券