我在我的模型驗證有問題。這似乎是不可能使用保存()完成(函數(){.....作爲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