成功提交后重置aurelia验证

成功提交后重置aurelia验证,aurelia,Aurelia,我正在利用我的应用程序。我想做的是在成功提交后将表单重置为空值 下面是我的视图类: @inject(Validation) export class Inquire { @ensure(isName) firstName = ''; @ensure(isName) lastName = ''; . . . constructor(validation) { this.validation = validation.on(th

我正在利用我的应用程序。我想做的是在成功提交后将表单重置为空值

下面是我的视图类:

@inject(Validation)
export class Inquire {

    @ensure(isName)
    firstName = '';

    @ensure(isName)
    lastName = '';

    . . .

    constructor(validation) {
        this.validation = validation.on(this);
    };

    sendInquiry() {
        this.validation.validate()
            .then(() => {
                // make API call here, which works
                // reset fields
                this.firstName = '';
                . . .
            }).catch((validationResult) => {
                console.log(validationResult);
            });
    };
};
如果我将
firstName
lastName
和其他字段设置回空字符串,则会重新触发表单验证。我怎样才能防止这种情况发生


似乎您应该能够在
ValidationGroup
as上调用
.clear()
.destroy()
,但这对我不起作用。
ValidationGroup
clear()方法应该可以。关键是,您必须在清除字段后调用此

sendInquiry() {
    this.validation.validate()
        .then(() => {

            // make API call here, which works
            // reset fields
            this.firstName = '';
            . . .

            //this resets the validation and clears the error messages
            this.validation.clear();

        }).catch((validationResult) => {
            console.log(validationResult);
        });
};
在较新的Aurelia验证版本(2016年8月之后)中,您需要使用
reset
方法:

this.validation.reset()
见下表:

验证
方法相反的是
重置
。不带参数调用reset将取消恢复以前呈现的任何验证结果。您可以提供重置指令,将重置限制为特定对象或属性:

controller.reset();
controller.reset({ object: person });
controller.reset({ object: person, propertyName: 'firstName' });

清除字段后调用this.validation.clear()
对我来说很好。。。你说“不为我工作”是什么意思?你看到控制台中的验证错误或错误了吗。我无法解释为什么它现在可以工作,但在将字段设置回默认值后调用
.clear()
是可行的。奇怪的调用
.clear()
应该是文档和示例的一部分。我们始终欢迎PR访问文档:)@nemesv您可以将其作为答案发布吗?我肯定会添加一个。我真的很想看到Aurelia取得成功。在较新版本的Aurelia中,它改为
this.validation.reset()