将模型实例添加到集合后,我会执行POST请求来添加它。然后,GET请求完成从服务器获取模型。有没有办法不到GET请求,只有POST请求?另外,是否有可能获得成功和错误回调函数来响应POST请求的成功和失败?在集合中创建新实例后,请勿在端点(主干)上执行GET请求
我想这样做,因为集合具有解析返回的JSON数据的URL,所以GET请求不起作用,但POST请求确实有效。我不想在不起作用的端点上执行GET请求。
将模型实例添加到集合后,我会执行POST请求来添加它。然后,GET请求完成从服务器获取模型。有没有办法不到GET请求,只有POST请求?另外,是否有可能获得成功和错误回调函数来响应POST请求的成功和失败?在集合中创建新实例后,请勿在端点(主干)上执行GET请求
我想这样做,因为集合具有解析返回的JSON数据的URL,所以GET请求不起作用,但POST请求确实有效。我不想在不起作用的端点上执行GET请求。
GET请求是不必要的。在您的POST处理程序中的服务器上,您应该将JSON结果返回给表示该模型的客户端。这在生成诸如ID之类的字段时特别有用。然后在成功回调的客户端上,您可以抓取POST返回的模型。
在以下示例中,如果成功,则会将新模型添加到集合中。我还包括错误回调,如果客户端验证失败或POST失败,将触发:
var isNew = this.model.isNew();
this.model.save({}, {
success: function(model, response) {
if (isNew && this.collection) {
this.collection.add(model);
}
},
error: function(model, response) {
var errorMsg;
// Response may be string (if failed client side validation or an AJAX response (if failed server side)
if (_.isString(response))
errorMsg = response;
else
errorMsg = response.responseText;
}
});
您所遵循的过程确实是不必要的。您应该使用集合上的create
直接添加模型,并在同一时间调用sync
(本例中为POST)。
例如:
collection.create({foo: 'bar'});
或collection.create(unsaved_model);
调用create
将返回的(保存)模型或false
,如果这是没有成功的结果。此外,可以等待模式,通过做
collection.create({foo: 'bar'}, {wait: true});
的documentation是你的朋友保存before
加入到集合中。
我认为如果你能更具体地说明你的问题是什么以及你想做什么,那真的会有所帮助。 – Hassan 2012-04-16 01:22:37