aurelia .passes(function('','','',''))

时间:2016-03-24 09:02:25

标签: validation aurelia

我以为我已经钉了这个,似乎没有。我收到以下错误:

  

未处理的承诺拒绝错误:意外的行为:a   validation-rules-collection应该始终满足

                        .ensure('baseContent.ValidFromDate', (config) => { config.computedFrom(['baseContent.ValidFromDate', 'baseContent.ValidFromTime', 'baseContent.ValidToDate', 'baseContent.ValidToTime']) })
                    .if(() => {
                        return this.baseContent.ValidFromDate !== null && this.baseContent.ValidFromTime !== null && this.baseContent.ValidToDate !== null && this.baseContent.ValidToTime !== null})
                        .passes( () => { return this.datetimeformat.format(this.baseContent.ValidFromDate, this.baseContent.ValidFromTime) < this.datetimeformat.format(this.baseContent.ValidToDate, this.baseContent.ValidToTime) })
                    .endIf().isNotEmpty()

第一次回归布尔。但是,如果false则不会标记这一点。之后我收到上面的错误。

另外我希望我可以添加自定义错误?它会出现在所有盒子上吗?

或者我需要做一些像

这样的事情

确保([.. .. .. ..]

1 个答案:

答案 0 :(得分:0)

经过大量调查后我发现问题来自我的格式化类,它没有正确创建日期/时间(使用moment.js)(在用户从日历中选择之后),意味着它返回了'您无法比较的无效日期: - |

这将有效:

this.validator = this.validation.on(this)
                    .ensure('baseContent.ValidFromDate', (config) => { config.computedFrom(['baseContent.ValidFromDate', 'baseContent.ValidFromTime', 'baseContent.ValidToDate', 'baseContent.ValidToTime']) })
                        .if(() => {
                            return this.baseContent.ValidFromDate !== null && this.baseContent.ValidFromTime !== null && this.baseContent.ValidToDate !== null && this.baseContent.ValidToTime !== null })
                            .passes( () => { return this.datetimeformat.format(this.baseContent.ValidFromDate, this.baseContent.ValidFromTime) < this.datetimeformat.format(this.baseContent.ValidToDate, this.baseContent.ValidToTime) })
                            .withMessage('< Valid To')
                        .endIf()