我正在尝试遵循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();
}
}
这似乎不再有效了。尝试将验证导入构造函数时出现注入错误。
我去了文档,似乎不再存在验证符号。
我尝试将验证规则和验证器注入我的类,但没有一个支持确保或方法。
我尝试遵循文档上的流程,其中"on"将是最后一个方法调用。但由于连确保都不起作用,我被卡住了。
感谢任何帮助。
Aurelia在过去两年中经历了很多变化,因此有很多教程不起作用。 但是DocHub上的官方文档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()
在有效规则列表中。 请参阅文档。