我在我的模型验证有问题。这似乎是不可能使用保存()完成(函数(){.....作为validation-这里是代码的同时。验证保存并保存()完成 - 在主干
我的模型:
App.Models.Task = Backbone.Model.extend({
defaults: {
title:'',
completed: 0
},
validate: function (attrs, options) {
if(attrs.title == '' || attrs.title === undefined) {
return "fill title pls"
}
},
urlRoot: 'tasks'
});
和那么在我看来,我尝试将其保存在加入方法:
App.Views.TaskAdd = Backbone.View.extend({
tagName: 'div',
template: template('taskTemplateAdd'),
events : {
'click .addTask' : 'add'
},
initialize: function() {
this.model.on('add',this.render, this)
},
add : function() {
var title = $("#addNew input:eq(0)").val();
var completed = $("#addNew input:eq(1)").val();
this.model.set('title', title);
this.model.set('completed', completed);
this.model.save({},
{
success: function (model, response) {
console.log("success");
},
error: function (model, response) {
console.log("error");
}
}).complete(function() {
$("<div>Data sent</div>").dialog();
$('#list').empty();
});
},
render: function() {
this.$el.html(this.template(this.model.toJSON()));
return this
}
});
时验证火灾,我得到错误:
Uncaught TypeError: Object false has no method 'complete'
我明白,这三ES可能会对返回值运行完整的回调,但如何解决这个问题?
无法设置的参数是一个对象? 'this.model.set({'title',title});' – 2013-02-15 11:34:01
你可以这样做:this.model.set({'title':title})或this.model.set(title,'title ') - 不能做({'title',title}); – Kriss 2013-02-15 13:22:50