在Backbone

时间:2015-09-10 23:13:09

标签: javascript validation backbone.js

我有一个模型

var Info = Backbone.Model.extend({
    url: '',
    defaults: {
       username: '',
       email: '',
       error: ''
    },
    initialize: function(){
        console.log('Obj created');
    },
    validate: function(attr){
        if(!attr.username){
           attr.error = 'Username cannot be empty';
        }
    }
});

View

var model = new Info();
var View1 = Backbone.View.extend({
     model: model,
     initialize: function(){
        this.render();
     },
     render: function(){
        var template = _.template($('#App1').html());
        this.$el.html(template);
     },
     'events': {
         'click #btn1': 'submit'
     },
     submit: function(){
          var obj = {
              username: $('#username').val(),
              email: $('#pwd').val)
          };
          this.model.save();
     }
});

这里我想在验证事件期间设置model.set({error: 'Message goes here'})

但是,validate仅返回true / false。有没有办法可以在validate方法中设置值。

1 个答案:

答案 0 :(得分:0)

您可以在validate()函数中设置错误属性:

this.set('error', 'Message goes here')

设置后,可以通过this.model.get('error')从视图对象代码中访问错误消息。