我如何使用当前版本的aurelia-validation?

Rod*_*ira 1 aurelia aurelia-validation aurelia-framework

我正在尝试遵循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();
    }
}
Run Code Online (Sandbox Code Playgroud)

这似乎不再起作用了.尝试在构造函数中进行验证时出现注入错误.

我去了文档,似乎不再存在验证符号.

我试图注入ValidationRules验证到我的课,但没有支持保证的方法.

我尝试按照文档上的流程进行操作,其中"on"将是最后一个方法调用.但由于甚至没有确保工作,我被困住了.

感谢任何帮助.

LSt*_*rky 6

Aurelia在过去两年中经历了很多变化,因此有很多教程不起作用.但是关于Docure的Aurelia验证的官方文档应该对你有用.

重要的提示:

Aurelia验证似乎有一个限制,它不能很好地处理对象的子属性,就像你正在尝试做的那样(this.movie.title).相反,你应该做这样的事情:

import {ValidationRules} from "aurelia-validation";
export class Edit {
  constructor() {
    ValidationRules
      .ensure("title").required()
      .ensure("releaseYear").required()
      .on(this.movie);
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以更改.required()为任何有效规则.但是,我不认为.isNotEmpty().isNumber()在有效规则列表中.请参阅文档.

  • 好了,既然我已经设法通过标记我自己的答案来删除我的问题,请接受这个答案是正确的! (2认同)