前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >backbone.js中的异常处理

backbone.js中的异常处理

作者头像
the5fire
发布2019-02-28 16:12:57
1.2K0
发布2019-02-28 16:12:57
举报

今天收到一个网友(暖阳下的懒猫)对backbone.js中的提问邮件,回答了下,觉得应该有其他人也会遇到这样的问题,于是征求了暖阳下的懒猫同意,把邮件发到这里,下面是邮件内容:

暖阳下的懒猫:

hi,你好。

最近在看backbone相关的的东西,看到你写的一些列笔记很有启发。

但是有个问题我想不明白,就是如果发生错误是怎么处理的?

比如一个collection create了一条model,model会save到server,如果save过程中出现错误,collection不要add这条数据同时view不要展现这条数据怎么处理?

还有比如一个model的修改如save,destroy都会触发change事件导致view的render,如果发生错误怎么阻止render?

看了一些文章都讲的是成功的情况,所以想了解一下出错的情况下怎么处理,不知道你能不能抽时间给我讲解一下,谢谢啦。

回复:

很高兴我的笔记对你有启发 :- )

发生错误这个问题原先还真没考虑到。

刚才看了下,如果是server端的异常的话,是可以在backbone.js中处理的。这个异常指的是你在model.save或者collection.create的时候,出现的500错误,或者404错误。

对于create是出错和save时出错,采用的解决办法是相同的。并且你说的如何阻止render方法,这个只要把save里面的错误处理的参数填上就可以了。

首先是collection的create:

代码语言:javascript
复制
Todos.create(this.newAttributes(),{
                      wait: true,
                      error:function(model, error) {
                        alert('error');
                      }
              }); 

在后面添加了参数:

代码语言:javascript
复制
{
 wait: true,     //设置create为同步模式,即等到服务器端响应才进行其他操作。
  error:function(model, error) {     //错误处理
       alert('error');
  }
}

其次在修改时的save和destroy触发reander的情况,只要在save和destroy中添加错误处理就行了。

在destroy中:

代码语言:javascript
复制
this.destroy({wait:true, error:function(model,error){
        alert('发生错误!');
      }});

在save中也是如此。

希望能够解答你的问题,如果还有疑问可以继续发邮件,或者到博客留言。

另外遇到问题要多看看官方文档,虽然backbone.js的官方文档写的内容比较少,但对解决问题还是有帮助的。

补充:这个异常的上下文:

7、backbone实例todos分析(一)

8、backbone实例todos分析(二)view的应用- from the5fire.com

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-05-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档