骨干严重的缺点

时间:2013-10-28 15:37:00

标签: javascript backbone.js

请考虑以下示例:

http://jsfiddle.net/FxX7v/1/

Zoo = Backbone.Model.extend({
    validate: function() {
        console.log('val');
        return "error";
    },
    url: '/save/'
});

var artis = new Zoo( { name: 'Artis' } );

console.log(artis.get( 'name' ) );

artis.save({name:'Artis2'})

console.log( artis.get( 'name' ) );

如果您尝试将更改保存到模型,但验证失败。

但您可以在示例中看到数据在模型中已更改。

这真的是一个缺点,还是我错过了什么?

1 个答案:

答案 0 :(得分:3)

此示例中的数据会发生变化,因为您没有强制验证。如果要在修改客户端模型之前强制进行验证,则必须使用set方法,如下所示:

artis.set({name:'Artis2'}, {validate: true});