Aurelia-validation 确保依赖问题

Aurelia-validation ensure dependency issue

我有 2 个 ensure - 验证装饰器用于 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 未定义。

我该如何解决?我如何测试这些密码的相等性?为什么 elem.subject.password 未定义?

恭敬地感谢您。

official documentation 中有关于如何通过 fluent API 进行操作的规范。

要使用 @ensure 装饰器,您可以使用类似的东西:

@ensure((elem: ValidationGroup) => {
        elem
            .isNotEmpty()
            .isStrongPassword()
            .isEqualTo((parent = elem) => { return parent.result.properties.password.latestValue }, "password")
    }) retypePassword: string;