我从 http://aurelia.io/hub.html#/doc/article/aurelia/validation/latest/validation-basics/1 开始
然后试了http://blog.durandal.io/2016/06/14/new-validation-alpha-is-here/
但是,验证并没有像预期的那样在 blur 上发生。即使我在 Controller 上调用验证,也不会设置错误。
登录.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
。
关于javascript - 如何让 Aurelia 验证工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39179796/