Javascript 主干JS保存功能
我已经为我的项目编写了一个rails后端,当您保存或创建一个新记录时,状态200和保存的帖子的json表示形式 当我在bacbone中执行以下操作时:Javascript 主干JS保存功能,javascript,ruby-on-rails,json,backbone.js,Javascript,Ruby On Rails,Json,Backbone.js,我已经为我的项目编写了一个rails后端,当您保存或创建一个新记录时,状态200和保存的帖子的json表示形式 当我在bacbone中执行以下操作时: modelObject = new App.Models.Post(); modelObject.set({title: 'asdasdas', content: 'asdadasdasdasdasd'}); if (modelObject.isValid()){ modelObject.save().then( .
modelObject = new App.Models.Post();
modelObject.set({title: 'asdasdas', content: 'asdadasdasdasdasd'});
if (modelObject.isValid()){
modelObject.save().then( ... )
}
如何获取返回的post对象?(假设职位成功)
在rails方面,当我执行@post.save
时,我也会在创建操作中成功保存后渲染json:@post,status:200
,因此有一个json对象返回,我只是不知道如何在主干端访问它。modelObject.save()调用将返回一个promise对象。您应该链接一个.done()调用,并将其传递到函数中,如下所示:
modelObject.save().done(function(e) {
// handle your response here
});
modelObject.save().done(function(e) {
// handle your response here
}).fail(function(e) {
// handle failure here
});
也可以使用.fail()函数以相同的方式处理故障。像这样把它们连在一起:
modelObject.save().done(function(e) {
// handle your response here
});
modelObject.save().done(function(e) {
// handle your response here
}).fail(function(e) {
// handle failure here
});
下面是编写相同代码的另一种方法:
var promise = modelObject.save();
promise.done(function(e) {
// handle your response here
});
promise.fail(function(e) {
// handle failure here
});
还有一个.always(),您可以将其链接为始终被调用:
var promise = modelObject.save();
promise.done(function(e) {
// handle your response here
});
promise.fail(function(e) {
// handle failure here
});
promise.always(function(e) {
// always call this on success or failure
});
下面介绍调用save()
函数后如何从服务器获得响应的几种方法。
例如:
您需要指定error
和success
回调:
var model = new App.Models.Post();
model.set({title: 'some title', content: 'some content'});
var options = {
success: function(model, response){
console.log('success handler');
model.set({id: response.id});
},
error: function(model, xhr){
console.log('error handler');
}
};
指定wait
选项以在设置模型属性之前等待服务器的响应:
options.wait = true;
需要使用指定选项调用save
函数:
if (model.isValid()) {
model.save({}, options);
}
这并没有真正回答我的问题:如何获得通过成功保存返回的post json。这有助于我更好地写这篇文章,但不能帮助我理解“这就是你如何得到返回的post-json…”部分。