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

时间:2017-02-05 01:08:16

标签: 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();
    }
}

这似乎不再起作用了。尝试将验证纳入构造函数时出现注入错误。

我转到了文档,似乎不再存在验证符号。

我尝试将 ValidationRules Validator 注入我的课程,但没有人支持确保 方法。

我尝试按照文档上的流程进行操作,其中“on”将是最后一个方法调用。但是,即使确保无法正常工作,我也陷入了困境。

感谢任何帮助。

1 个答案:

答案 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()在有效规则列表中。请参阅文档。