专栏首页Python程序员杂谈backbone.js中的异常处理

backbone.js中的异常处理

今天收到一个网友(暖阳下的懒猫)对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:

Todos.create(this.newAttributes(),{
                      wait: true,
                      error:function(model, error) {
                        alert('error');
                      }
              }); 

在后面添加了参数:

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

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

在destroy中:

this.destroy({wait:true, error:function(model,error){
        alert('发生错误!');
      }});

在save中也是如此。

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

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

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

7、backbone实例todos分析(一)

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx 主动监测模块 upstream check 误用导致的502--no live upsteams

    nginx出现502 Bad GateWay的原因大部分情况下应该都不是Nginx的问题,而是后端Server的问题,比如程序挂了,比如响应太慢了。不过有时问题...

    the5fire
  • 7、backbone实例todos分析(一)

    ​经过前面的几篇文章,backbone中的model,collection,router,view,都简单的讲了一下,我觉得看完这几篇文章,你应该达到的水平,或...

    the5fire
  • window7下安装使用mongoDB(简单)

    项目需要使用mongo数据库,简单使用了一下,首先到http://www.mongodb.org 下载win系统用的“芒果”。解压到D盘,下载名字比较长,改为m...

    the5fire
  • WAE的推导与理解

    然而如何去进行优化,估计分布之间的距离依旧是一个无法解决的问题。参考f-gan,可以使用类似的方式去求出距离,原始论文中也提到了MMD的方法,但使用gan-ba...

    用户1908973
  • 再谈数据中台是什么以及MLSQL为什么可以作为数据中台

    昨天还是前天,正好看到朋友圈里大家都在发AI前线推的一篇文章。数据中台已成下一风口,它会颠覆数据工程师的工作吗?, 个人认为风口谈不上,但是确实是技术发展到一定...

    用户2936994
  • “北京八分钟”团队:让中国机器人登上世界之巅

    平昌冬奥会闭幕式上的“北京八分钟”表演。 2月25日,韩国平昌冬奥会闭幕式演出,“北京八分钟”上演。24台人工智能机器人控制着“冰屏”与24名轮滑演员,...

    机器人网
  • C#嵌入x86汇编——一个GPIO接口的实现

    开始进入工业自动化,买的工控机带有GPIO接口,可用于直接控制继电器。 从厂家拿到接口手册一看,居然是汇编直接操作端口,基本上是IN/OUT指令了。接口很简单,...

    大石头
  • Vue实现父子组件的双向绑定数据(.sync修饰符 )

    最近在vue 项目中有一个需求, 就是我需要根据不同的类型在页面中放不同的组件, 组件需要跟当前页面的数据进行双向绑定,如果都写在同一个页面 代码会显得比较多,...

    javascript.shop
  • 3. SOFAJRaft源码分析— 是如何进行选举的?

    在上一篇文章当中,我们讲解了NodeImpl在init方法里面会初始化话的动作,选举也是在这个方法里面进行的,这篇文章来从这个方法里详细讲一下选举的过程。

    luozhiyun
  • Oracle开窗函数笔记及应用场景

    oracle开窗函数使用的话一般是和order、partition by、row_number()、rank()、dense_rank()几个函数一起使用

    用户1208223

扫码关注云+社区

领取腾讯云代金券