我正在尝试遵循aurelia(验证)教程。但是,我知道它需要更新。即便如此,我认为通过文档,我将能够弄清楚如何使其工作,这是不会发生的。
原始代码如下:
import {inject} from "aurelia-framework";
import {Validation} from "aurelia-validation";
@inject(Validation)
export class Edit {
constructor(validation) {
this.validation = validation.on(this)
.ensure("movie.title")
.isNotEmpty()
.ensure("movie.releaseYear")
.isNumber();
}
}
这似乎不再起作用了。尝试将验证纳入构造函数时出现注入错误。
我转到了文档,似乎不再存在验证符号。
我尝试将 ValidationRules 和 Validator 注入我的课程,但没有人支持确保或 方法。
我尝试按照文档上的流程进行操作,其中“on”将是最后一个方法调用。但是,即使确保无法正常工作,我也陷入了困境。
感谢任何帮助。
答案 0 :(得分:6)
Aurelia在过去两年中经历了很多变化,因此有很多教程不起作用。但Docure上的official documentation Aurelia验证应该对你有用。
重要提示:
Aurelia验证似乎有一个限制,即它不能很好地处理对象的子属性,就像你正在尝试做的那样(this.movie.title
)。相反,你应该做这样的事情:
import {ValidationRules} from "aurelia-validation";
export class Edit {
constructor() {
ValidationRules
.ensure("title").required()
.ensure("releaseYear").required()
.on(this.movie);
}
}
您可以将.required()
更改为任何有效规则。但是,我并不认为.isNotEmpty()
或.isNumber()
在有效规则列表中。请参阅文档。