javascript - 如何让 Aurelia 验证工作?

标签 javascript typescript aurelia

我从 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"
      },

ma​​in.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-validatejsvalidatejs

关于javascript - 如何让 Aurelia 验证工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39179796/

相关文章:

iPad 上的 Javascript : typewriting effect shuffles chars when idling the tab

javascript - 无需外部 API 调用的验证码

javascript - 禁用 NextJs 实验应用程序目录

twitter-bootstrap - 在 Bootstrap 中隐藏可忽略的警报

aurelia - Aurelia中父子自定义元素的双向绑定(bind)

javascript - 我怎么知道我的 Javascript 执行了?

javascript - 如何从倒计时器获取剩余时间?

angular - 可以使用 Ionic 2 更改手机和平板电脑的布局吗?

javascript - Angular 7 中的动态验证 : enable() & setValidators depending on flags triggered by changes

javascript - Aurelia 绑定(bind) - 单击按钮返回查看模型