哪些验证库可以很好地与Backbone.js配对

What validation library pairs well with Backbone.js?

本文关键字:Backbone js 配对 很好 验证      更新时间:2023-09-26

因为我们使用的是Backbone,所以每次我们弹出UI让用户输入一些数据时,我们并没有真正向服务器提交表单。但是,一些流行的验证框架假设您有一个<form>来处理您的各种输入(而我们没有),并且您将提交该表单(我没有)。

什么样的验证框架可以很好地与某些东西配对,并允许我在验证时触发,而不关心我的控件是否在表单中?

有趣的问题。我自己没有找到100%的解决方案,所以我不认为这是你问题的直接答案,但我认为这可能有助于如何最好地解决这个问题。

对我来说,最适合的是完全用Json定义的验证规则,同时使用客户端和服务器端声明性验证"构建器"来根据定义构建规则。这将启用DRY(服务器/客户端)验证。

JSON-schema在这方面非常有限。

我相信Kansojs.org有一个非常好的JSON验证定义,但我还没有遇到实现它的构建器。

我在前段时间提出了一个问题,但我担心我的文章式问题没有引起回应:)使用JSON-schema

进行DRY用户输入验证(客户端、服务器端)

希望这对一些人有帮助,基尔特•简•

我们最近遇到了这个库:https://github.com/thedersen/backbone.validation

至少在纸面上,它看起来很棒。它不需要表单,反而似乎很乐意在模型级别进行验证。如果模型上的元素和属性之间有一个简单的映射,那么它还可以更新视图中的元素,以反映验证中的错误。

一旦我们有机会彻底地练习它,我会回来用更多的信息更新它。

我正在寻找一个跨平台(nodejs,浏览器)的骨干验证库,它支持异步测试,自定义测试,自定义语言错误消息,测试关系等…

我还没有找到一个独立的库,但我在这里找到了一个解决方案:https://github.com/powmedia/backbone-forms,它生成整个表单,而不仅仅是验证它,并有自定义的错误消息太…

顺便说一句,用验证器生成表单是一个很了不起的想法。我认为脊柱不够灵活,对我来说太大了。我想用Backbone。UI,它有一个自定义数据绑定器。我不知道如何自定义骨干形式使用骨干。UI数据绑定器。

我创建了自己的lib: https://github.com/inf3rno/bb-validation,它在1.0版本中只包含验证,现在我重构和重写了部分代码,并在2.0版本中添加了一个表单生成器。该表单生成器使用http://perka.github.io/backbone-ui字段,我的目标是开发类似于骨干表单的东西,但由较小的库组成。我认为这是编写可重用的javascript代码的方法…

为什么要注意使用和覆盖Backbone的原始验证入口点?这里是文档的链接:

http://backbonejs.org/Model-validate

从文档中:

validatemodel.validate(attributes, options) 

这个方法是未定义的,我们鼓励你用任何可以在JavaScript中执行的自定义验证逻辑来覆盖它。

默认情况下,save在设置任何属性之前检查validate,但您也可以告诉set通过传递{validate: true}作为选项来验证新属性。

验证方法接收模型属性以及传递给设置或保存的任何选项。如果属性是有效的,不要从validate返回任何东西;如果它们无效,则返回您选择的错误。

它可以像要显示的字符串错误消息一样简单,也可以是一个以编程方式描述错误的完整错误对象。如果validate返回一个错误,则保存将不会继续,并且模型属性将不会在服务器上被修改。失败的验证触发"invalid"事件,并使用此方法返回的值设置模型上的validationError属性。

——还可以使用和重写这两个函数:

validationErrormodel.validationError 

上次验证失败时validate返回的值。

isValidmodel.isValid() 

运行validate检查模型状态