javascript - backbone.js 中的验证方法不起作用

标签 javascript jquery backbone.js

我正在学习 backbone.js,使用其中的 validate 方法。但它不会在 set 处触发 以下是我的代码:

JS:

var person = Backbone.Model.extend({
    defaults:{
        name:"Soni",
        age:'40',
        work:'Still searching'
    },
    mainWork: function(mainwork) {
        return this.get('name')+" does "+mainwork+" for living";
    },
    validate: function(attrs) {
            console.log("hi");
        if (attrs.age < 1) {
            return "can't end before it starts";
        }
    }
});

在控制台上:

var x = new person({name:'xyz',age:37});
x.set('age',-34);

请告诉我,我在这里缺少什么。

最佳答案

Validate 方法将在模型 save 上调用。如果你想在属性 set 上触发它,你应该调用它 will validate: true option:

x.set({age: -34}, {validate: true});

关于javascript - backbone.js 中的验证方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077626/

相关文章:

jquery - 创建看起来像 iOS7 选择菜单的菜单

javascript - Uncaught ReferenceError : jQuery is not defined

javascript - 主干委托(delegate)事件

javascript - 错误 undefined object (尽管已定义)

javascript - 使用 javascript 链接下载 PhantomJS

javascript - 通过javaScript将 'tap'添加到Html中

javascript - side el 的嵌套 id 中的 Backbone 渲染模板

backbone.js - 无法在 CoffeeScript 中扩展 Backbone 事件

javascript - 如何缩小/混淆全局函数名称?

javascript - 使用 jQuery 悬停和着色