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

在angular 4中-新密码和确认密码的自定义验证器出现"Cannot read property of null“错误

在Angular 4中,当自定义验证器中出现"Cannot read property of null"错误时,通常是由于未正确处理表单控件的值或未正确绑定验证器函数导致的。

要解决这个问题,首先需要确保在自定义验证器函数中正确处理表单控件的值。通常情况下,我们可以通过使用FormControl对象的value属性来获取表单控件的值。例如,如果我们有一个新密码和确认密码的表单控件,可以使用以下代码来获取它们的值:

代码语言:txt
复制
const newPassword = formGroup.get('newPassword').value;
const confirmPassword = formGroup.get('confirmPassword').value;

接下来,我们需要确保在自定义验证器函数中正确处理表单控件的状态。通常情况下,我们可以通过使用FormControl对象的valid属性来检查表单控件是否有效。例如,如果我们要验证新密码和确认密码是否匹配,可以使用以下代码:

代码语言:txt
复制
if (newPassword !== confirmPassword) {
  return { passwordMismatch: true };
}

在上面的代码中,如果新密码和确认密码不匹配,我们返回一个包含passwordMismatch属性的对象,表示验证失败。

最后,我们需要确保在模板中正确绑定自定义验证器函数。通常情况下,我们可以使用Validators对象的compose方法来将多个验证器函数组合在一起。例如,如果我们有一个名为passwordForm的表单组,可以使用以下代码来绑定自定义验证器函数:

代码语言:txt
复制
this.passwordForm = this.formBuilder.group({
  newPassword: ['', Validators.required],
  confirmPassword: ['', Validators.required]
}, { validator: this.passwordMatchValidator });

在上面的代码中,我们将passwordMatchValidator函数作为第二个参数传递给FormGroup的构造函数,以将其作为表单组的验证器。

总结起来,在Angular 4中解决"Cannot read property of null"错误的步骤如下:

  1. 确保正确处理表单控件的值。
  2. 确保正确处理表单控件的状态。
  3. 确保在模板中正确绑定自定义验证器函数。

对于更详细的解释和示例代码,您可以参考腾讯云的Angular开发文档:Angular开发文档

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

相关·内容

easyui+ssm+shiro做登录注册修改密码审核用户(四)

,若存在,再输入新密码确认密码,这两个要一致,下面还要有个返回登录页面的a标签 ?...οnclick="doUpdatePwd()" 方法修改用户密码信息,根据用户账号,用户密码,用户新密码这三个参数来修改密码,         var username = ("#usernameId...,不一致则弹出提示   “两次输入密码不一致,请重新输入” /* 验证新密码确认密码是否一致 */ function confirmPwd(){ var password = $("...user.getPassword().equals(pwd); 原密码与当前加密密码不相等,就直接返回字符串201,如果是其他情况,就把修改好新密码用MD5加密,然后设置密码为新加密密码,调用userDao...} }, error : function(){ } }) } /* 验证新密码确认密码是否一致

2K10

10 种 JavaScript 最常见错误

1、Uncaught TypeError: Cannot read property 如果你是一个 JavaScript 开发人员,可能你看到这个错误次数比你想要多。...有趣是, JavaScript 中, null undefined 是并不同,这就是为什么我们看到是两个不同错误信息。...undefined 通常是一个尚未分配变量,而 null 表示该值为空。 要验证它们不相等,请尝试使用严格相等运算符 === ?...所以,如果 DOM 元素之前有一个标签,脚本标签内 JS 代码将在浏览解析 HTML 页面时执行。 如果在加载脚本之前尚未创建 DOM 元素,则会出现错误。...8、 TypeError: Cannot read property ‘length’ 这是因为读取未定义变量长度属性而发生错误。 您可以 Chrome 开发者控制台中进行测试。 ?

8.5K20

Angular17 使用 ngx-formly 动态表单

ngx-formly 是 Angular 应用实现响应式动态表单框架,不仅支持自动生成表单、易于上手自定义字段扩展、自定义验证扩展、支持 Formly Schema JSON Schema,还有开箱即用内置表单主题...Validation 表单验证主要包括:Formly 内置验证自定义验证消息及自定义验证函数三大块,自定义验证消息验证函数分别还可以正在全局注册指定字段注册,不同场景可以考虑不同自定义方式...: 到目前不通过验证字段仅仅是通过边框颜色改变区分,现在就为字段添加自定义验证消息,自定义验证消息同时支持字符串函数两种方式设置; 全局注册自定义验证消息,需要在 FormlyModule 注册时通过...隐藏/显示字段: 如果需要使前面加入的确认密码字段输入密码字段后才显示时就需要使用 expressions.hide 来控制隐藏或显示: { key: 'checkPassword', type...checkPassword: '确认密码', }; 接着 FormlyModule 中注册,其中还可以通过 priority 调整扩展生效优先级: FormlyModule.forRoot({

44110

Uncaught TypeError: Cannot read property setAttribute of null

Uncaught TypeError: Cannot read property 'setAttribute' of nullWeb开发中,你可能会遇到各种各样错误。...本篇博客将讨论一个常见JavaScript错误:Uncaught TypeError: Cannot read property 'setAttribute' of null(无法读取null对象属性...解决方法以下是一些解决"Uncaught TypeError: Cannot read property 'setAttribute' of null"错误方法:确保要访问元素存在于文档中,可以使用...结论"Uncaught TypeError: Cannot read property 'setAttribute' of null"错误通常意味着你试图null对象上调用方法。...这个错误几种常见情况包括访问一个不存在元素、元素尚未加载时访问它、或者DOM元素尚未创建时调用方法。通过检查元素是否存在使用适当事件监听等待DOM加载,可以避免这个错误发生。

28850

JavaScrip最容易犯十大错误及其避免方法()

Uncaught TypeError: Cannot read property 如果你是一个javascript开发者,你肯定看到过此错误 读取属性或调用方法对象未定义 这可能由于许多原因而发生,...is not an object 有趣是,JavaScript中,nullundefined不一样,这就是为什么我们看到两个不同错误消息。...要验证它们不相等,请尝试使用严格相等运算符: 现实世界示例中,这种错误一种方式是,如果在加载元素之前尝试JavaScript中使用DOM元素。...因此,如果DOM元素之前有标记,则脚本标记中JS代码将在浏览解析HTML页面时执行。 如果在加载脚本之前尚未创建DOM元素,则会出现错误。...TypeError: Cannot read property ‘length’ 您通常会在数组中找到定义长度,但如果未初始化数组或者另一个上下文中隐藏变量名,则可能会遇到此错误

11610

10 种最常见 Javascript 错误

Uncaught TypeError: Cannot read property 如果你是一个 JavaScript 开发人员,可能你看到这个错误次数比你敢承认要多(LOL…)。...这又意味着 ItemList 将 items 定义为 undefined,并且控制台中出现错误 - “Uncaught TypeError: Cannot read property ‘map’ of...有趣是, JavaScript 中,null undefined 是不一样,这就是为什么我们看到两个不同错误信息。...TypeError: Cannot read property ‘length’ 这是 Chrome 中发生错误,因为读取未定义变量长度属性。 您可以 Chrome 开发者控制台中进行测试。...在这种情况下,应用程序将抛出 “Uncaught TypeError: Cannot set property”。 例如, Chrome 浏览中: ?

6.8K80

来自1000多个项目的10大JavaScript错误浅析

1.Uncaught TypeError: Cannot read property 如果你是一名JavaScript开发者,对这个错误可能已经熟视无睹。...:Cannot read property ‘map’ of undefined”。...TypeError: null is not an object Safari里读取空(null)对象属性或调用空对象方法时就会发生这个错误Safari开发者控制台可以很容易地重现这个错误。...有意思是,JavaScript里,nullundefined其实是不一样,所以我们会看到两个不同错误消息。undefined表示未赋值变量,而null表示变量值为空。...TypeError: Cannot read property ‘length’ Chrome里读取undefined变量length属性时会发生这个错误,这个错误可以Chrome开发者控制台重现

6.2K80

新特性解读 | MySQL 8.0 新密码策略(中)

本篇继续介绍 MySQL 8.0 新密码验证策略。...以上两种改密码需求,在数据库侧暂时无法实现,只能拿个“小本子记住历史密码保留个数、历史密码保留天数”,在用户每次更改密码前,先检测小本子上有没有新密码重叠历史密码。...,也就是3次密码,再来更改一次密码,此时不允许更改密码错误提示密码历史策略冲突: mysql:(none)>alter user ytt_dev identified by 'root123'; ERROR...,由于我们设置了密码历史保留天数,任何在设定时间内历史密码,均不能作为新密码使用:MySQL 拒绝用户更改密码错误提示与密码历史策略冲突: mysql:(none)>alter user ytt_dba...总结: MySQL 8.0 推出历史密码验证策略是对用户密码安全机制另外一个全新改进,可以省去此类需求非数据库侧繁琐实现。

72710

CentOS 6.9 中 搭建 Hive

user = 'newPassword'; # 刷新权限使新密码立即生效 mysql> flush privileges; # 设置允许root用户通过任意机器访问mysql mysql> grant...javax.jdo.option.ConnectionPassword 分别为mysql 访问用户密码,可通过以下命令验证是否有效(期中bigdata为javax.jdo.option.ConnectionURL... beeline.hs2.connection.password 是beeline方式访问用户名密码,可任意指定,但在beeline访问时要写入你指定这个 <?...Hive 两种访问方式 # 第一种访问方式 hive # 第二种访问方式 # 其中 bigdata bigdata 分别是 hive-site.xml 配置文件中由 beeline.hs2.connection.user...,如果出现ls: cannot access /home/bigdata/apache-hive-2.1.0-bin/lib/hive-jdbc-*-standalone.jar: No such file

59730

Angular2 :从 beta 到 release4.0 版本升级总结

Angular 模块是带有 @NgModule 装饰函数类。 @NgModule 接收一个元数据对象,该对象告诉 Angular 如何编译运行模块代码。...它标记出该模块拥有的组件、指令管道, 并把它们一部分公开出去,以便外部组件使用它们。 它可以向应用依赖注入中添加服务提供商。 具体请参考官方文档。...升级angular(v2.4.0)到(v4.1.1)版本后,左侧导航状态定位失效 原因:升级后,routercomponenthook顺序调整(仅根据个人观察,未经验证),导致组件状态未能在路由事件结束...使用angular-cli后无法自定义webpackalias, 导致文件引入路径很长,如../../../shared/。...使用方式: 12.迁移一些文件后,启动app失败,出现Cannot read property 'length' of undefined 原因

8.1K00

用户管理模块之个人信息修改

=null,比较user中密码用户输入密码oldPassword是否相同 如果密码不相同,抛出密码不匹配异常 如果密码相同,表示用户输入密码是正确,那么更新密码即可 定义接口方法 IUserService...如果user=null,抛出用户不存在异常 * 3. 如果user!=null,比较user中密码用户输入密码oldPassword是否相同 * 4....请求方式: POST 响应方式:@ResponseBody 密码修改成功后,我们需要让用户重新登录,因此我们需要清除session,因为我们设置了登录验证拦截,只要访问有关个人信息页面,我们都会先拦截验证是否登录...pwd.length>=6&&pwd.length<=9; } //验证新密码确认新密码是否相同 function checkPasswordEquals(){ var newPassword...color","green"); } }); //确认密码失去焦点验证新密码是否一致 $("#confirmPassword").blur(function(){ //如果密码不一致 if

5.4K30

忘记MySQL密码怎么办?一招教你搞定!

安装完 MySQL 或者是使用 MySQL 时,最尴尬就是忘记密码了,墨菲定律也告诉我们,如果一件事有可能出错,那么它一定会出错。那如果我们不小心忘记了 MySQL 密码,该如何处理呢?...重启服务之后我们就可以通过命令行工具来设置 MySQL 新密码了,首先我们输入“mysql -u root -p”命令来连接 MySQL 服务,当出现输入密码框时直接敲回车就可以登录了,如下图所示...: 接下来我们再使用以下命令来设置新密码: update user set password=password('新密码') where user='root'; flush privileges...option so it cannot execute this statement 错误。...最后 当我们设置完新密码之后,记得要把 MySQL 配置文件中“skip-grant-tables”(跳过权限验证)去掉,然后再重启 MySQL 服务就可以正常使用了。

1.2K20

巧用Python 枚举类设计状态码信息

引言 web 项目中,我们经常使用自定义状态码来告知请求方请求结果以及请求状态; Python 中该如何设计自定义状态码信息呢? 普通类加字典设计状态码 #!...] 通过 @property 装饰把类型方法当属性使用,由于 枚举类.属性名 对应着不同枚举对象就很好把状态码信息进行了封装。...具体 @property 装饰使用详解,可以移步到 Python中property使用技巧 继续模拟组织响应数据 data = { 'code': StatusCodeEnum.OK.code...') SERVER_ERR = (500, '服务异常') IMAGE_CODE_ERR = (4001, '图形验证错误') THROTTLING_ERR = (4002...NEW_PWD_ERR = (5004, '新密码错误') OPENID_ERR = (5005, '无效openid') PARAM_ERR = (5006, '参数错误')

91410

软件测试流程(完整版)

(有的需求是区分大小写,有的是不区分) 看是否支持TabEnter键等;密码是否可以复制粘贴,密码是否以*之类加密符号显示 邮箱地址格式不正确,正确格式—@—.com 验证错误(大小写,空值,错误输入等...) 二、 登录 用户名密码都是正确 用户名密码都是错误 用户名正确密码错误 用户名错误密码正确 用户名或密码为空 删除用户名错误密码 删除用户名正确密码 未注册用户名错误密码 用户名或密码中插入空格...,直接改密码 输入错误密码 不输入确认新密码 不输入新密码 新密码确认新密码不一致 新密码中有空格 新密码为空 新密码长度为最大长度 新密码为最大长度与最小长度之间 新密码长度为最小长度 新密码为最大长度...+1 新密码为最大长度-1 新密码为最小长度+1 新密码为最小长度-1 新密码为非法字符(如有的密码要求必须是英文和数字组成,如中文汉字) 检查是否支持TabEnter键等;密码是否可以复制粘贴;密码是否以...*之类加密符号 检查密码是否区分大小写,新密码中英文小写,确认密码中英文大写 新密码与旧密码一样能否修改成功 四、添加 要添加数据项均为合理,检查数据库中是否添加了相应数据 流出一个必填数据为空

1.6K10

AngularDart4.0 英雄之旅-教程-04明细 顶

必备条件 继续本“英雄之旅”页面之前,请确认您在“英雄编辑”页面之后具有以下结构。 如果您结构不匹配,请返回该页面以弄清楚您错过了什么。 ? 如果该应用尚未运行,请启动该应用。...显示数据Showing a list property with *ngFor部分阅读更多关于ngFor模板输入变量模板语法页ngFor部分 节点内添加内容hero模板变量来显示英雄属性...Angular无法显示null selectedHero属性并抛出以下错误浏览控制台中可见: EXCEPTION: TypeError: Cannot read property 'name...' of undefined in [null] 尽管selectedHero.name显示模板中,但必须保留DOM外英雄详细信息,直到出现选定英雄。...结构指令页面模板语法页面的内置指令部分阅读有关ngIfngFor更多信息。 格式化选中hero 当选择英雄细节显示列表下方时,很难列表中识别选定英雄。

3K30

典藏版Web功能测试用例库

取消、返回、“X”按钮 ​ 直接再次打开,内容不应保留 ​ 修改后再次打开,应更新为最新信息 登录页面 ​ 界面显示 ​ 用户名、密码验证码文本框 ​ 验证格式 ​ 输入密码显示为***...​ 使用正确用户名,密码验证码登录成功 ​ 退出 ​ 确认是否退出提示 ​ 退出到登录页面 ​ 先校验验证码,再校验用户名、密码 ​ 输入错误验证码、用户名、密码,分别提示 ​...验证码 ​ 输入错误后,验证码自动刷新 ​ 也可以手动点击刷新验证码 ​ 忘记密码 ​ 连续输入密码错误5次,账号锁定 ​ 锁定后,其他账号可以登录 ​ 到了锁定时间,被锁账号可以登录...界面显示 ​ 验证码 ​ 输入错误,提示 ​ 强制登录成功 ​ 电脑a电脑b使用同一账号,来回踢几次 ​ 阿里云环境不同项目之间,登录token冲突,导致频繁下线 ​ 登录 ​...​ 界面显示 ​ 老密码新密码确认密码文本框 ​ 输入正确,修改成功 ​ 老密码错误新密码确认密码,输入不一致 ​ 新密码密码一样 ​ 修改后,用老密码登录失败,用新密码登录成功

3.5K20

1000多个项目中十大JavaScript错误以及如何避免

Uncaught TypeError: Cannot Read Property 这是 JavaScript 开发人员最常遇到错误。...此时就会出现一个错误 -“Uncaught TypeError: Cannot read property ‘map’ of undefined" in the consol”。...有趣是, JavaScript 中,null undefined 是两种不同类型,这就是为什么会出现两个不同错误消息。未定义通常是一个尚未分配变量,而 null 则表示该值为空。...要验证它们不相等,请使用严格相等运算符: ? 实际情况中,导致这种错误原因之一是:元素加载之前,就尝试 JavaScript 中使用 DOM 元素。...TypeError: Cannot Read Property ‘length’ 这是 Chrome 中发生错误,因为读取了未定义长度属性变量。 ?

8.2K40
领券