首先,我对Backbone的了解非常有限,目前,我正在尝试将一个实现添加到一些我没有创建的代码中。
我的问题如下:
我有一个收藏,点击一个按钮就会呈现出来。现在,我们正在网站上设置一些权限,所以有时我会得到401的回应。
我目前能够得到响应,问题是我不知道如何将其附加到同步事件,这样如果我在调用API时得到401,它就不应该呈现任何内容。
我认为查看代码有助于澄清我的问题:
this.addressBook = new (Backbone.Collection.extend({
url: url,
model: Backbone.Model.extend({
idAttribute: 'ID'
}),
parse: function(data) {
return data;
}
}))();
this.addressBook.on('sync', this.renderAddresses, this);
this.addressBook.fetch();
因此,我找到了几种从fetch获取状态代码的方法,但在本例中,我需要在sync事件调用this.renderAddress之前获取状态代码,并根据响应的状态,继续渲染视图,或者简单地显示一条消息,声明访问被拒绝。
抱歉我说得不够清楚。
先谢谢你。
2条答案
按热度按时间9cbw7uwe1#
以下是主要文档的主要部分:
每当一个模型或集合开始与服务器同步时,就会发出一个“request”事件。如果请求成功完成,就会得到一个“sync”事件,否则就会得到一个“error”事件。
这意味着,如果您得到401,则不应触发
sync
事件,而应触发error
事件。您可以通过侦听所有不同的事件(包括所有可用的参数)在代码中对此进行测试:
因此,您应该能够只侦听
error
事件来显示自定义错误消息:zour9fqk2#
首先,你需要为你的addressBook fetch定义一些回调选项。对于你要完成的任务,你需要提供错误回调。
免责声明:我没有测试这个代码,因为我没有一个方便的方法,我可以想到重现这个问题。
我相信它是有效的,因为Backbone将一个jQuery xhr对象传递给它的错误回调函数。http://backbonejs.org/#Model-fetch