在对象上绑定时Aurelia validatejs无法正常工作

用户名

我正在玩aurelia-validatejs,并且能够验证页面上的简单字段。在同一页上,我尝试初始化一个对象并将验证绑定到该对象,但该对象停止工作:

user_data:IUserData = {
    Login:"",
    Id         : null,
    UserProfile: {
        UserId: null
    },
    Permissions: null
};
constructor(){
    this.reporter = ValidationEngine.getValidationReporter(this.user_data);

    // if I just use this and not user_data object,
    // it works and error message is displayed in UI

    this.validator = new Validator(this.user_data)
        // when I use this.user_data (user_data object), it does validate 
        // and I can see validation result on console, but it's not shown in UI

        .ensure('Login').required().length({minimum: 3, maximum:10});
        this.observer = this.reporter.subscribe(result => {
            console.info(result);
        });
}

有人提到validatejs寻找一个标签,而我确实拥有它,当我在this对象上初始化时它就起作用了,但是只要我想在this.user_data属性上进行验证,它就不会在UI中显示,但是我可以看到它在控制台上。

<form action="" submit.delegate="createUser()">
    <div class="input-group ${user_data.Login | loginClass}">
        <label></label>
        <input placeholder="Login" type="text" class="form-control"
            keyup.delegate="validate()"  value.bind="user_data.Login & validate">
    </div>
</form>

这是行不通的,但是如果我像这样清除user_data:

    user_data:IUserData = {
        Login:"",
        Id         : null,
        UserProfile: {
            UserId: null
        },
        Permissions: null
    };
constructor(){
        this.reporter = ValidationEngine.getValidationReporter(this);

        //if I just use this and not user_data object,
        //it works and error message is displayed in UI

        this.validator = new Validator(this)
            .ensure('Login').required().length({minimum: 3, maximum:10});
        this.observer = this.reporter.subscribe(result => {
            console.info(result);
        });
}

<form action="" submit.delegate="createUser()">
    <div class="input-group ${user_data.Login | loginClass}">
        <label></label>
        <input placeholder="Login" type="text" class="form-control"
            keyup.delegate="validate()"  value.bind="Login & validate">
    </div>
</form>

这有效,并显示在UI中。我在stackoverflow上进行了一些搜索,并得到了一些相似的结果(我的问题是相似的。如果我不在对象上使用它,则会在UI上显示错误消息,但是当我尝试在对象上使用它时,它将在控制台上登录,但是它不会显示在用户界面中)

我也发现了这一点,但并没有太大帮助。

我发现了另外一个也没有太大帮助。

我知道有很多文章可能会使这个问题标记为重复,我要问的原因是aurelia是相当新的技术,并且东西经常在变化。

提前致谢!

用户名

所以我挖了一点,问Gitter的开发人员。事实证明,这是validatejs插件中的错误。

进行了最近的更改以使所有类都可以使用某些内容,并且在完成更改后,即使我们提供了不同的模型,validatejs也会在同一模型上寻找validateError Reporter。

一个小小的变通办法是

this.__validationReporter__ = ValidationEngine
    .getValidationReporter(this.user_data);

代替:

this.reporter = ValidationEngine.getValidationReporter(this.user_data);

我已经报告了此问题,一旦他们提出了建议,就会进行更新。

现在我要使用

this.__validationReporter__ = ValidationEngine
    .getValidationReporter(this.user_data);

或者另一种解决方法是将其降级到0.3.x,因此不建议这样做,因为可能已经进行了一些重要更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在对象上绑定时Aurelia validatejs无法正常工作

来自分类Dev

数据绑定无法正常工作

来自分类Dev

TextBox绑定无法正常工作

来自分类Dev

绑定值无法正常工作

来自分类Dev

数据绑定无法正常工作

来自分类Dev

角度绑定无法正常工作

来自分类Dev

JavaScript对象无法正常工作

来自分类Dev

Aurelia导航栏VM无法正常工作

来自分类Dev

按钮IsEnabled绑定无法正常工作

来自分类Dev

WPF中的绑定无法正常工作

来自分类Dev

kendo mvvm绑定无法正常工作

来自分类Dev

模型绑定Webform TryUpdateModel无法正常工作

来自分类Dev

WPF延迟绑定无法正常工作

来自分类Dev

OnsenUI AngularJS数据绑定无法正常工作

来自分类Dev

NancyFX绑定TimeSpan无法正常工作

来自分类Dev

角度单击事件绑定无法正常工作

来自分类Dev

ngModel数据绑定无法正常工作

来自分类Dev

为什么JavaScript绑定无法正常工作

来自分类Dev

模型绑定html:asp无法正常工作

来自分类Dev

绑定无法正常工作。可能的配置错误

来自分类Dev

键绑定无法正常工作-Swing

来自分类Dev

Java键绑定无法正常工作

来自分类Dev

WPF数据绑定无法正常工作

来自分类Dev

Python 3绑定无法正常工作

来自分类Dev

键盘绑定事件Tkinter无法正常工作

来自分类Dev

ResourceDictionary中的绑定无法正常工作

来自分类Dev

WPF MVVM属性绑定无法正常工作

来自分类Dev

字典-TextBox绑定无法正常工作

来自分类Dev

Tkinter - 键绑定无法正常工作