Geo*_*ieF 5 ajax jquery backbone.js
在我的基于Backbone.js的应用程序中,我正在与我的API进行通信,它响应204状态和空体,以防请求集合但不包含任何数据.在我看来,RESTful API在这种情况下应该如何响应.
在我的应用程序现在我遇到了问题,显然在收到204响应后没有触发任何事件.我试图绑定reset并all喜欢:
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();
};
Run Code Online (Sandbox Code Playgroud)
但事件永远不会发生.所以我试着给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;
}
});
};
Run Code Online (Sandbox Code Playgroud)
相同的行为.如果响应是204,则不会达到调试语句.如何处理204响应呢?我是否需要深入挖掘sync并为204添加额外处理,或者Backbone中有什么东西我还不知道?
Thx Felix
这个解决方案看起来相当前卫,但同时又很尴尬:
我只是parse在集合中定义该方法,以便它检查传递的响应对象是否为空。只有发生 204 时才会出现这种情况。然后在里面parse我设置this.collection.models = []触发reset事件。集合视图绑定到该事件,运行一个可以查看内部的函数this.collection.models。如果没有给出模型,则可以呈现“无内容”模板而不是标准模板。
如果有人有更好的方法,我将不胜感激!
| 归档时间: |
|
| 查看次数: |
1271 次 |
| 最近记录: |