javascript - 主干验证功能不起作用

标签 javascript jquery backbone.js

我正在使用主干验证功能,但它再次给出此错误 Uncaught TypeError: Object [object Object] has no method 'apply'。我真的不知道为什么会给我这个错误。

这是我的代码

$(function () {
var Veh = new Backbone.Model.extend({
    validate: function (attrs) {
        var validColors = ['white','red', 'black'];
        var colorIsValid = function (attrs) {
            if(!attrs.color) return true;
            return _(validColors).include(attrs.color);
        }
        if(!colorIsValid(attrs)) {
            return 'wrong color';
        }
    }
});
var car = new Veh();
car.on('error', function (model, error) {
    console.log(error);
});
car.set('foo', 'bar');
});

最佳答案

更新:错误是使用了new。使用 Backbone.extend 时不要做 new。这是因为您创建的是类而不是对象。

$(function () {
var Veh = Backbone.Model.extend({
    validate: function (attrs) {
        var validColors = ['white','red', 'black'];
        var colorIsValid = function (attrs) {
            if(!attrs.color) return true;
            return _(validColors).include(attrs.color);
        }
        if(!colorIsValid(attrs)) {
            return 'wrong color';
        }
    }
});

通知 var Veh = Backbone.Model.extend 而不是

var Veh = new Backbone.Model.extend

参见 this关于无意中使用 new 的副作用的问题。

关于javascript - 主干验证功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996898/

相关文章:

jquery - 删除带有确认框的动态行

javascript - 同时验证表单和一些输入

javascript - 如何为 ember js 属性同时拥有观察者和 init

javascript - 在 Angular 6 中一一处理多个 http 响应

javascript - 为什么 'this' 在调试器中未定义但可在 console.log 中打印?

javascript - 绑定(bind)到由 collection.create() 创建的模型的错误事件?

java - netty可以用来将数据服务器到前端 Backbone 吗?

php - REST 用户认证

javascript - 如何将数据从网站发布或传递到其中的对象元素?

backbone.js - 你需要多长时间来学习backbone.js