backbone.js - 使用 Backbone Stickit 进行 Backbone Validation - 更改属性时验证所有属性

标签 backbone.js backbone-stickit

我正在尝试将 Backbone Validation 与 Backbone Stickit 结合使用,我希望在用户输入时一次验证一个属性。但是,当用户输入一个值时,模型上的所有属性都会得到验证,而不仅仅是用户更改的属性。我究竟做错了什么?

我的看法:

bindings:{
        '#username' : {
           observe:'username',
           setOptions: {
                validate:true
           }
        },

        '#email' : {
           observe:'email',
           setOptions: {
                validate:true
           }
        },

        '#firstname' : {
           observe:'firstName',
           setOptions: {
                validate:true
           }
        }, 

.......

onShow: function(){    
        Backbone.Validation.bind(this, {
              valid: function(view, attr) {
                alert('VALID - ' + attr);
              },
              invalid: function(view, attr, error) {
                alert('INVALID - ' + attr);
              }
            });

        this.stickit();

    },

最佳答案

你所经过的一切setOptions在模型中设置值时使用 (1) .当您通过validate: true对于 Backbone 模型的 set 函数,它将验证模型中的值以及传递给 set 函数的值 (2)这意味着每次您设置导致您现在看到的问题的新值时,它都会验证整个模型。你没有做错任何事。

您可以通过将验证拆分为多个单独的函数并仅在属性更改时调用所需的函数,然后更改验证函数以调用所有这些单独的函数来验证整个模型来解决此问题。

关于backbone.js - 使用 Backbone Stickit 进行 Backbone Validation - 更改属性时验证所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21637996/

相关文章:

c# - 如何从 mvc3 模型的序列化 json 中获取backbone.js 模型?

javascript - 在更改事件处理程序中(重新)渲染 Backbone View 不起作用

Javascript:跟踪自定义事件

javascript - 在 Backbone Stickit 中结合使用 visible 和 onGet

javascript - Backbone ,获取已更改元素的 ID/名称

javascript - 为 Backbone.Stickit.js 绑定(bind)设置全局 setOptions

ruby-on-rails - Backbone.js 和 Rails - 如何处理来自 Backbone 模型的参数?

backbone.js - {无声 :true} in Backbone 1. 0 版本

javascript - “请求 header 字段不允许授权”错误 - Tastypie