我有以下内容:
.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()
我相信config.computedFrom(['baseContent.ValidFromDate', 'baseContent.ValidFromTime', 'baseContent.ValidToDate', 'baseContent.ValidToTime'])
- 意味着如果其中一个值发生变化,它会重新运行验证吗?但是它只在'baseContent.ValidFromDate'
上执行此操作,我缺少什么/不理解?
更新
似乎问题与computeFrom不支持路径有关,实际上并不知道绕过此限制的另一种方法将此验证添加到四个项目
答案 0 :(得分:0)
此功能于上周添加(aurelia-binding 1.0.0-beta.1.3.0)。见https://github.com/aurelia/binding/issues/149
用作装饰器时的语法是:
@computedFrom('obj.firstName', 'obj.lastName')