我有2个确认 - 2个字段的验证装饰器:password和retypePassword。我想在填写retypePassword字段时检查这两个字段的相等性。
问题是,当我在这两个字段中输入完全相同的密码时,它表示密码不匹配。
@ensure(function(elem: ValidationGroup) {
elem
.isNotEmpty()
.isStrongPassword()
}) password: string;
@ensure(function(elem: ValidationGroup) {
elem
.isNotEmpty()
.isStrongPassword()
.isEqualTo(elem.subject.password, "password")
}) retypePassword: string;
我运行调试器,当执行.isEqualTo(elem.subject.password," password")行时,我看到elem.subject.password是UNDEFINED。
我该如何解决?如何测试这些密码的相等性?为什么elem.subject.password未定义?
谢天谢地。
答案 0 :(得分:3)
在official documentation中,有一个关于如何通过流畅API进行操作的规范。
要使用@ensure
装饰器执行此操作,您可以使用以下内容:
@ensure((elem: ValidationGroup) => {
elem
.isNotEmpty()
.isStrongPassword()
.isEqualTo((parent = elem) => { return parent.result.properties.password.latestValue }, "password")
}) retypePassword: string;