2015-08-24 67 views
3

我有2个确保 - 验证装饰器的2个字段:密码和retypePassword。我想在填充retypePassword字段时检查这两个字段的相等性。Aurelia验证确保依赖性问题

问题是,当我在这两个字段中输入完全相同的密码时,它说密码不匹配。

@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,“密码”)时elem.subject.password是不确定的。

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

谢谢你的尊敬。

回答

3

official documentation有一个关于如何通过流利的API做到这一点的规范。

要做到这一点使用@ensure装饰,你可以使用类似:

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