1

我有一个要验证的超级简单代码:

<template>
    <form role="form" submit.delegate="submit()" validate.bind="validation">    
        <div class="form-group">    
            <label>Test Field</label>
            <input type="text" value.bind="testField" class="form-control" validate="Description" placeholder="What needs to be done?" />
            <button type="submit">Submit</button>
        </div>
    </form>
</template>

使用以下视图模型

 define(["require", "exports", "../scripts/HttpClient", "aurelia-validation", "aurelia-framework"], function(require, exports, HttpClient) {
    var AureliaValidation = require('aurelia-validation').Validation;

    var MyViewModel = (function () {
        function MyViewModel(httpClient, aureliaValidation, isReadyCallback) {
            this.httpClient = httpClient;
            var self = this;

            self.setupValidation(aureliaValidation);
        }
        MyViewModel.prototype.activate = function (params, queryString, routeConfig) {
        };

        MyViewModel.prototype.setupValidation = function (validation) {
            this.testField = "";
            this.validation = validation.on(this).ensure('testField');

            //validation
            //    .on(this.serviceMetadata.ServiceData[0])
            //    .ensure('Value');
            this.validation = this.validation.notEmpty().maxLength(3);
        };

        MyViewModel.prototype.submit = function () {
            debugger;
            if (this.validation.checkAll()) {
                //Do Something
            }
            return null;
        };
        MyViewModel.inject = [HttpClient, AureliaValidation];
        return MyViewModel;
    })();


    return MyViewModel;
});

现在我得到了它的大部分工作,并且验证在提交检查时显示为假,文本框轮廓颜色发生变化等,但是它没有将验证错误消息注入到 DOM 中。也没有脚本错误消息,我该如何解决这个问题?

是的,我可以在 validationProperties 中看到验证消息,但它们没有写入 UI。

4

1 回答 1

2

如果您的浏览器允许,请在源代码中找到 JSPM 包并在此处放置一个断点,这是视图策略查找标签以将错误消息附加到的位置。如果您公开此代码,我很乐意为您寻找。

另外,您使用的是什么版本的 aurelia/aurelia-validation?

最后,您在发布之前是否修改了您的示例?

`<input value.bind="testField" validate="Description" />`

这两个属性是矛盾的。它将值绑定到 testField,但随后您使用 validate 属性显式显示属性“描述”的验证消息。

于 2015-05-29T03:44:33.697 回答