モデルの検証に問題があります。検証と同時にsave()。complete(function(){.....を使用することは不可能のようです-コードは次のとおりです。
私のモデル:
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'
});
そして、私の見解では、addメソッドでそれを保存しようとします:
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'
おそらく戻り値に対して完全なコールバックを実行しようとしていることを理解していますが、この問題を解決する方法は?