• 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

  • 相关阅读:
    bzoj3196 Tyvj 1730 二逼平衡树
    bzoj2929 [Poi1999]洞穴攀行
    bzoj2325 [ZJOI2011]道馆之战
    cf413E Maze 2D
    bzoj2599 [IOI2011]Race
    bzoj1528 [POI2005]sam-Toy Cars
    UVA 796 Critical Links(无向图求桥)
    UVA 315 Network(无向图求割点)
    HDU 1269 迷宫城堡(求是否只有一个强连通分量)
    HDU 3974 Assign the task
  • 原文地址:https://www.cnblogs.com/hushufang/p/3580276.html
Copyright © 2020-2023  润新知