javascript - 为什么不会验证触发错误-backbone.js

标签 javascript backbone.js

为什么验证不会触发错误,因为“fred”应该使验证条件在设置时返回 true?

Person = Backbone.Model.extend({

    initialize: function () {
        console.log('inisialize Person');
        this.bind("change:name", function () {
            console.log(this.get('name') + ' is now the name value')

        });
        this.bind("error", function (model, error) {

            console.log(error);

        });
    },
    defaults: {
        name: '',
        height: ''
    },
    validate: function (attributes, options) {  

        if (attributes.name == "fred") { //why wont this work?

            return "oh no fred is not allowed";
        }

    }

});

//var person = new Person({ name: 'joe', height: '6 feet' });
var person = new Person();
person.set({ name: 'fred', height: '200' });

最佳答案

您的 validate() 在保存时被调用,但在设置属性时不会被调用,除非您明确告诉它这样做。来自 docs :

By default validate is called before save, but can also be called before set if {validate:true} is passed.

关于javascript - 为什么不会验证触发错误-backbone.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054871/

相关文章:

javascript - 在用户仍在输入时异步获取输入值

css - Bootstrap.less 不加载 Bootstrap 的东西

javascript - 如何检查用户是否确认自定义模式对话框

javascript - 为什么在 DOM 事件触发之前声明命名函数?

javascript - 检查按钮是否关闭javascript?

javascript - 如何通过 Azure Cosmos DB 中的存储过程查询数据库

javascript - Backbone.Marionette 嵌套的 ItemView 要么不呈现要么呈现 "blank" View /模板

backbone.js - backbone fetch id 改变了

javascript - 无需后端的用户认证

javascript - 如何将变量分配给 API 调用中的解构数据?