zoukankan      html  css  js  c++  java
  • backboneJS 使用心得(2)view和model事件的多次绑定(转载)

    一,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

  • 相关阅读:
    MyBatis学习总结(5)——实现关联表查询
    MyBatis学习总结4--解决字段名与实体类属性名不相同的冲突
    MyBatis学习总结3-优化MyBatis配置文件
    各种数据库的数据类型
    Ubuntu下jdk配置
    null和""的区别
    单例模式
    知识体系(不断更新)
    Servlet错误一览
    如何锻炼敲代码的能力
  • 原文地址:https://www.cnblogs.com/hushufang/p/3580276.html
Copyright © 2011-2022 走看看