gpt4 book ai didi

jquery - 如何处理 Backbone.js 集合请求中的 204 响应

转载 作者:行者123 更新时间:2023-11-30 23:46:26 24 4
gpt4 key购买 nike

在我的基于 Backbone.js 的应用程序中,我正在与我的 API 进行对话,该 API 会响应 204 状态和空正文,以防请求的集合尚不包含任何数据。在我看来,RESTful API 在这种情况下应该如何响应。

现在我的应用程序遇到了问题,显然在收到 204 响应后没有触发任何事件。我尝试绑定(bind) resetall ,例如:

  FoosCollectionView.prototype.initialize = function() {
this.collection = new FoosCollection;
this.collection.bind('reset', this.render, this);
this.collection.bind('all', this.render, this);
return this.collection.fetch();
};

但事件从未触发。所以我尝试给 fetch 一些回调:

  FoosCollectionView.prototype.initialize = function() {
this.collection = new FoosCollection();
return this.collection.fetch({
success: function(a, b, c) {
debugger;
},
error: function(a, b, c) {
debugger;
},
complete: function(a, b) {
debugger;
}
});
};

同样的行为。如果响应是 204,则不会到达任何调试语句。那么我该如何处理 204 响应呢?我是否必须深入研究 sync 并为 204 添加额外的处理,或者 Backbone 中是否有我还不知道的东西?

谢谢菲利克斯

最佳答案

这个解决方案看起来相当前卫,但同时又很尴尬:

我只是在集合中定义了 parse 方法,以便它检查传递的响应对象是否为空。只有发生 204 时才会出现这种情况。然后在 parse 中我设置了 this.collection.models = [] ,它会触发 reset 事件。 Collection View 绑定(bind)到该事件,运行一个可以查看 this.collection.models 内部的函数。如果没有给出模型,则可以呈现“无内容”模板,而不是标准模板。

如果有人有更好的方法,我将不胜感激!

关于jquery - 如何处理 Backbone.js 集合请求中的 204 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com