AngularJS 中使用 $validators 管道进行密码匹配会产生意外结果

2023-12-24

参见示例here http://jsfiddle.net/vBK9A/.

使用 $validators 管道,我尝试检查一个字段是否包含与另一个字段相同的值。

此示例中的每个输入都与另一个相关联,因此预期结果如下:

  • 在 input#1 中输入一个值
  • 在 input#2 中输入相同的值
  • 现在这两个字段都应该有效
  • 更改输入#1 中的值
  • input#1 应该无效(或 input#2 或两者)

最初,我使用$watch当前模型和目标都等于,因此只需使用该指令的两个字段之一。然而,随着$validators管道,此方法意外停止工作(可能是一个错误)。

无论如何,正如您所看到的,当第二个输入更改时,接收到的关联输入的值是undefined.

Solution

我通过以下方法解决了这个问题:

JSFiddle http://jsfiddle.net/Y3A5v/

正如 Nikos 所说,这两个实例相互抵消,因此通过以下代码修复了这个问题:

$scope.$watch('passwordWatch', function(pass) {
    $control.$validate();
});

因此,现在,当目标输入发生变化时,当前输入将重新生效。当当前输入更改时,它会自动验证(像往常一样)。


一个问题是,当验证器失败时(返回false),然后将基础模型值设置为undefined. So:

  1. 您在密码中输入一些内容,例如"aaa";这是NOTpasswordConfirm,所以验证器返回false模型得到undefined value
  2. 您在passwordConfirm中输入相同的值;但从上面的密码值是undefined and undefined !== "aaa",所以密码Confirm验证返回false too.
  3. 等等...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 中使用 $validators 管道进行密码匹配会产生意外结果 的相关文章

随机推荐

  • 日期与 ActiveSupport::TimeWithZone 的比较失败

    我有一个age方法在我的Waiver模型看起来像 def age date nil if date nil date Date today end age 0 unless date of birth nil age date year d
  • Android格式日历输出时间

    我正在使用下面的代码来设置闹钟 我想输出此时的时间 我不知道我是否以错误的方式处理这件事 如果我输出变量 cal 它会包含一长串信息 如何仅提取小时和分钟 Calendar cal Calendar getInstance add 5 mi
  • 如何在 iOS 上获取当地时间 [重复]

    这个问题在这里已经有答案了 我刚刚注意到NSDate nowDate NSDate date 给我 GMT 0 时间而不是当地时间 所以基本上在我的 iPad 上是 13 00 这段代码的输出是 12 00 如何正确获取当地时间 试一试 N
  • java 中 .length 的时间复杂度或隐藏成本

    我正在查看一个java项目并发现了一个for循环的写法如下 for int i 1 i
  • 所有类文件中的错误:R 无法解析

    示例代码 setContentView R layout main Error R cannot be resolved 所有类文件中都有这个错误 我无法摆脱它 我已经检查了 XML 文件 没有错误 我已经确保我没有意外导入 android
  • 这个 php.ini 文件到底在哪里?

    我在 yahoo 上使用 phpMyAdmin 运行 php 与 4 1 14 它说该文件位于 usr lib php php4 ini 但我在任何地方都找不到它 它在 phpMyAdmin 文件夹中吗 我真的需要尽快找到这个并关闭 mag
  • 在 Codeigniter 中添加语言的 URI 段

    我有一个网站 我需要开发支持多种语言 例如 en tr ar sp 等 但问题是 使用 Codeigniter 实现这一点的最佳方法是什么 我有一个控制器 SITE 我有很多功能 例如 酒店 城市 页面 博客 我想在此方法之前添加一个段 语
  • 识别 Kibana 和 ElasticSearch 中的时间戳

    我是 ElasticSearch 和 Kibana 的新手 无法让 Kibana 识别我的时间戳 我有一个包含大量数据的 JSON 文件 我希望使用 Curl 将其插入到 Elasticsearch 中 以下是其中一个 JSON 条目的示例
  • 使用 smo 以编程方式备份​​和还原 Azure 数据库

    我们有一个正在运行的网络应用程序 一切都托管在 azure 上 我们有一台sql server和两个数据库 生产和测试 客户请求备份生产数据库并将其恢复以代替测试数据库的功能 我正在使用以下代码 public static void Bac
  • 根据列值从数据框中随机选择行

    我有一个 pandas 数据框 如下所示 col1 col2 label a b 0 b b 0 0 1 and the value counts对于标签列 df label value counts 0 200000 1 10000 我想
  • “git push”到 github 时出错

    我在 github com 有一个公共存储库 有 2 个分支 master and test 我在本地创建了一个新目录并执行了以下操作 git clone email protected cdn cgi l email protection
  • 将刻度线与 Android SeekBar 对齐

    我正在尝试将一些刻度线指示器添加到 Android 上的 SeekBar 中 我能够生成带有刻度线的背景 但是我无法找到将刻度线与实际 SeekBar 线对齐的方法 正如您从屏幕截图中看到的 刻度线实际上在 SeekBar 行之前开始 我可
  • QTreeWidgetItem 在 python3 中不可散列

    我需要将一些 python2 代码移植到 python3 在那里我发现了一个dict of QTreeWidgetItem被建造 在 Python 2 中 这工作得很好 因为对象是可散列的 但在 python 3 中你会得到一个错误 因为
  • 在 React 应用程序中更改商店的路线

    我有一个 React 组件 它接收用户名和密码并将其发送以进行身份 验证 如果身份验证成功 页面应移动到呈现另一个组件的不同路由 现在的问题是 我不知道如何更改从我的商店出发的路线 即不使用React Router 的组件 我知道我们可以使
  • 将结构化 json 日志注入journald

    我的印象是 可能有一种方法可以直接写入 systemd 日志 json 数据 而无需先将其转换为以下格式 sd journal 函数期望 这可能吗 我的怀疑是因为一些关于内置 json 解析器的评论 然而 手册页却另有建议 另外 我注意到
  • Laravel 5 重定向循环错误

    我试图制作登录和管理脚本 问题是我有一个重定向循环 我不知道为什么 我想要登录用户并且可以在 路径不 home 如果改变return new RedirectResponse url to return new RedirectRespon
  • tomcat是否为每个用户创建一个线程?

    我对网络开发相当陌生 如果这是一个非常基本的问题 我深表歉意 例如 我创建一个Web应用程序并将其部署到tomcat 现在 当多个用户访问 Web 应用程序时 tomcat 是否为每个用户创建一个新线程 如果是这种情况 那么我仍然可以在应用
  • 如何在 Android 中保存 FCM 令牌?

    我正在关注this https github com probelalkhan android push using firebase cloud messaging blob master app src main java net si
  • 如何下载 Visual Studio 2013 update 2 离线/独立安装?

    可下载here http www microsoft com en us download confirmation aspx id 42666但必须是在线安装过程 我正在寻找离线下载包和 或独立 iso 安装文件的方法 类似于我们使用 V
  • AngularJS 中使用 $validators 管道进行密码匹配会产生意外结果

    参见示例here http jsfiddle net vBK9A 使用 validators 管道 我尝试检查一个字段是否包含与另一个字段相同的值 此示例中的每个输入都与另一个相关联 因此预期结果如下 在 input 1 中输入一个值 在