一,new 一个新的View对象时,最好把,el参数传进去;而不是在view里面操作view的外部节点。

比如:

外部调用 var view=new BankboneView({el,$('body')});

view内部: $(this.el).html(-template(...))

二,如果所有的外部传入el都是同一个时,会造成事件的多次重复绑定。

产生的原因是,backbone的view内部,事件的绑定都是基于this.el,$el这2个的,而我们在外部调用都用了同一个el,没有销毁过el节点。

解决办法:

采用动态创建的节点作为view的外部el节点。比如

$('body').html('<div class="main"></div>')

new view({el:$('.main')})

三,model也会发生多次事件绑定

产生的原因:由于有些model在整个应用当中,产生之后,一直没有销毁,那么如果view中,一般绑定的事件采用

model.bind('all',function(){

.....

});

当这个view被多次执行的时候,每次model数据变更,就会多次的执行绑定的事件;

解决办法:model.unbind().bind(.....);

四,underscore的_.bindAll()  函数

这个函数可以把,指定的函数的执行上下文绑定到第一个参数;

例如执行:

_.bindAll(this,'render','show')

之后,页面代码可以这样使用:

collection.bind('all',this.render)

原文地址:http://hi.baidu.com/mishe/item/511ceb55d7196809e6c4a563

最新文章

  1. NSObject+YYModel.h
  2. Android 关于ExpandableListView控件setOnChildClickListener无效问题
  3. java 正则表达式学习
  4. 每天一道LeetCode--344. Reverse String
  5. 表格的一些原生js操作(隔行变色,高亮显示,添加删除,搜索)
  6. WPF拖动绘制
  7. Powershell 快捷键
  8. Velocity缓存与穿透(转)
  9. iOS打包app发给测试人员测试
  10. 使用flask开发网站后端
  11. 【活动发布】捷微H5-微信新年砍价活动,开源发布了
  12. 网站横幅切换jquery 插件
  13. mysql使用sql语句查询数据库所有表注释已经表字段注释
  14. springaop----&gt;springaop的使用(一)
  15. 内容显示在HTML页面底端的一些处理方式
  16. Spring Boot项目的Logback配置文件使用yaml格式
  17. Android——菜单和进度条
  18. 查看python中已安装的包
  19. c#winform图表控件使用示例
  20. DropFileName = &quot;svchost.exe&quot; 问题解决方案

热门文章

  1. LDD命令--可执行文件依赖的库出现错误时
  2. hasOwnProperty方法的使用
  3. iotop
  4. BZOJ1013 球形空间产生器sphere
  5. 使用Windows USB-DVD制作U盘启动安装系统盘
  6. 自定义的string类
  7. Test注解的两个属性:expected和timeout
  8. 精通CSS+DIV基础总结(二)
  9. shadow projection
  10. Spark1.0.0 分布式环境搭建