如何让Aurelia验证工作
How to get Aurelia validations work?
我从http://aurelia.io/hub.html#/doc/article/aurelia/validation/latest/validation-basics/1
开始Then try http://blog.durandal.io/2016/06/14/new-validation-alpha-is-here/
然而,验证不会像预期的那样发生在blur上。即使我在控制器上调用validate,也不会设置错误。
login.ts
import {inject, NewInstance} from 'aurelia-dependency-injection';
import {ValidationController} from 'aurelia-validation';
import {ValidationRules} from 'aurelia-validatejs'
@inject(NewInstance.of(ValidationController))
export class Login {
email:string;
password:string;
controller = null;
constructor(controller){
this.controller = controller;
}
submit = () => {
this.controller.validate().then((res) => console.log(res)).catch((e) =>console.log(e));
};
}
ValidationRules
.ensure('email').required()
.on(Login);
login.html
<form submit.delegate="submit()">
<div class="form-group">
<label for="email" class="control-label required">Email</label>
<input class="form-control" value.bind="email & validate" type="email" id="email">
</div>
<div class="form-group">
<label for="password" class="control-label required">Password</label>
<input class="form-control" value.bind="password & validate" type="password"
id="password">
</div>
<div class="form-group">
<input id="remember_me" name="remember_me" type="checkbox" value="1">
<label for="remember_me" class="control-label">Remember me</label>
</div>
<div class="form-group">
<button class="btn btn-primary btn-block" type="submit">Login</button>
</div>
</form>
aurelia.json
{
"name": "aurelia-validation",
"path": "../node_modules/aurelia-validation/dist/amd",
"main": "aurelia-validation"
},
{
"name": "validate.js",
"path": "../node_modules/validate.js",
"main": "validate"
},
{
"name": "aurelia-validatejs",
"path": "../node_modules/aurelia-validatejs/dist/amd",
"main": "aurelia-validatejs"
},
main.ts
aurelia.use
.standardConfiguration()
.plugin('aurelia-validation')
.plugin('aurelia-validatejs')
.feature('resources');
从0.12版本开始,aurelia-validation
不再依赖于validate.js
。看起来你还在使用ValidationRules
从一个下降的依赖。简单地改变
import {ValidationRules} from 'aurelia-validatejs'
import {ValidationRules} from 'aurelia-validation'
顺便说一下:你可以完全删除aurelia-validatejs
和validatejs
从你的项目依赖
您需要在类中创建验证规则,可能在attached
方法中,并且您希望传递this
而不是Login
。它应该看起来像这样:
attached(){
ValidationRules
.ensure('email').required()
.on(this);
}
我已经写了一篇文章,解释了为使验证正常工作需要做的所有事情。看起来你错过了拼图的渲染部分。让我知道这是否澄清了事情:
http://www.todroid.com/understanding-how-to-use-aurelias-validation-library/相关文章:
- 表单验证工作不正常,在不检查条目的情况下继续
- 尝试在angularJS中获得基本的身份验证工作
- 为什么这个jQuery验证工作错误
- 淘汰日期验证工作不正常
- 表单电子邮件验证工作不正常
- 字段验证工作不正常
- 表单验证工作不正常
- jquery编号验证工作不一致
- 为什么验证工作在表单名而不是模型上
- HTML表单使用JS验证电子邮件,验证工作,但表单仍然提交
- 无法使JavaScript密码正则表达式验证工作
- 我怎么能得到表单验证工作时,使用"共享"按钮(而不是“submit”类型的输入元素)
- Javascript/Jquery -不能让日期选择器+选择验证工作
- Parsley.js 2.0.2要求不工作,但其他验证工作
- 我似乎不能让我的Javascript表单验证工作
- 错误放置不允许jquery验证工作
- 如何让Aurelia验证工作
- 直到JS重定向,Laravel ajax身份验证工作
- 跨域ajax调用windows身份验证工作在chrome和不工作在Firefox
- 我无法让客户端和服务器端验证工作