在Typescript类

时间:2018-03-13 15:08:30

标签: jquery typescript jquery-validate aurelia aurelia-cli

目前我面临以下问题,我希望有人可以帮助我:

我正在使用TypeScript开发aurelia-cli应用程序。在我看来,aurelia验证不是那么好而且太复杂了。所以我正在使用jQuery-Validation。

我有以下课程:

export class RegistrationForm{
    @bindable errors: string[];

    public attached(){
        let validator = $("#registration-form").validate({
            onfocusout: function (element) {
                $(element).valid();
            },
            errorPlacement: function(error, element){
                this.errors.push(error.text());
            }
        });
    }
}

以下模板:

<template>
  ...
  <ul if.bind="errors">
     <li repeat.for="error of errors">
         ${error}
     </li>
  </ul>
...
</template>

我知道,this.errors.push(error.text())所述的示例是错误的,因为在那一点上我无法访问类变量errors

现在我的问题是,是否有可能将error.text()信息传递给类变量,以便文本在前端列出?

我的目标是,每当用户更改字段(onfocusout)时,相应的字段都会得到验证,并且页面顶部会显示一条消息。显示应该与aurelia绑定一起使用。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

将您的function()更改为arrow functions =>,因为它们会保留声明它们的范围,因此this指的是类而不是函数。

export class RegistrationForm{
    @bindable errors: string[];

    public attached(){
        let validator = $("#registration-form").validate({
            onfocusout: (element) => {
                $(element).valid();
            },
            errorPlacement: (error, element) => {
                this.errors.push(error.text());
            }
        });
    }
}