复杂对象属性的骨干验证(momentjs)

时间:2014-10-28 09:35:53

标签: validation backbone.js momentjs

我在我的模型中使用了一个momentjs对象:

var MyModel = Backbone.Model.extend({
    defaults: {
        iamString: "hello",
        iamDate: moment()
    },

    validation: {
        iamString: {
            required: true,
            fn: function (value, attr, computedState) {
                alert('Validation of iamString get called!');
            }
        },
        iamDate: {
            required: true,
            fn: function (value, attr, computedState) {
                alert('Validation of iamDate get called!');
            }
        }
    },

    print: function () {
        return this.get('iamString') + ' ' + this.get('iamDate').format('YYYY-MM-DD hh:mm:ss');
    }
});

如果我更新模型,则会调用iamString验证,但永远不会调用iamDate验证。

这是jsfiddle sample。如何才能使iamDate验证成为可能?

1 个答案:

答案 0 :(得分:0)

如果您调用moment()函数,则必须添加格式。

$('#validate').click(function () {
        mymodel.set({
            iamString: 'bye bye',
            iamDate: moment('2014-05-05 12:12:12').format('YYYY-MM-DD hh:mm:ss')
        }, {
            validate: true
        });
        alert(mymodel.print());
    });