1. 程式人生 > >backboneJS 使用心得(2)view和model事件的多次繫結(轉載)

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

相關推薦

backboneJS 使用心得2viewmodel事件轉載

一,new 一個新的View物件時,最好把,el引數傳進去;而不是在view裡面操作view的外部節點。 比如: 外部呼叫 var view=new BankboneView({el,$('body')}); view內部: $(this.el).html(-template(...)) 二,如果

ASP.NET單值c#+VS2010

一、單值繫結 新建一個ASP.NET網站模板->雙擊網站根目錄下的Default.aspx檔案,開啟設計檢視,從工具箱中拖一個label控制元件到設計檢視中->切換到源檢視中,設定label控制元件的屬性如下: <asp:Label ID="Label1

vue中eventbus被觸發vue中使用eventbus踩過的坑【bus.$on事件

  問題描述:只要頁面沒有強制重新整理,存在元件切換,bus.$on方法會被多次繫結,造成事件多次觸發   觸發bus.$on中繫結的方法.png

Java SpringMVC框架學習httpServeltRequestModel傳值的區別

urn ont ppi mode array style att 區別 () 為什麽大多程序在controller中給jsp傳值時使用model.addAttribute()而不使用httpServeletRequest.setAttribute()? 事實上model數

springmvc學習筆記20——MapModel 以及ModelAndView

處理模型資料之Map,Model 在上一次的筆記中講到了使用ModelAndView作為返回值,可以輕鬆的返回資料並且指定轉發的頁面。  其實我們也可以使用Map作為引數,將資料傳遞給頁面。直接上程式碼: import org.springframework.ui.Model; / *

把只包含質因子2、35的數稱作醜數Ugly Number。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。

/* 思路: 通俗易懂的解釋: 首先從醜數的定義我們知道,一個醜數的因子只有2,3,5,那麼醜數p = 2 ^ x * 3 ^ y * 5 ^ z,換句話說一個醜數一定由另一個醜數乘以2或者乘以3或者乘以5得到,那麼我們從1開始乘以2,3,5,就得到2,3,5三個醜數,在從這

.把只包含質因子2、35的數稱作醜數Ugly Number。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。

題目: 把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 解題思路:選定第一個醜數1,根據醜數的定義,可知以後的醜數必然是在1的基礎上乘以2,乘以3,乘以5,

劍指offer:把只包含質因子2、35的數稱作醜數Ugly Number。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。

問題:把只包含質因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含質因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 通俗易懂的

尋找醜數,把只包含因子2、35的數稱作醜數Ugly Number

題目: 把只包含因子2、3和5的數稱作醜數(Ugly Number)。例如6、8都是醜數,但14不是,因為它包含因子7。 習慣上我們把1當做是第一個醜數。求按從小到大的順序的第N個醜數。 思路: 所

群福利:Redis雲服務器免費領取附Redis安裝連接遠程連接Redis案例

sde net dia ref col edi 學習 .cn tar Redis安裝:在線體驗:https://try.redis.io Ubuntu:sudo apt-get install redis CentOS:yum install redis (root權限

Spring ProfileMybatis進行個數據源H2Mysql的切換

sql pda 開箱 https tails val 收集 sqlserver jpetstore 總結: 最近在做WebMagic的後臺,遇到一個問題:後臺用到了數據庫,本來理想情況下是用Mysql,但是為了做到開箱即用,也整合了一個嵌入式數據庫H2。這裏面就有個問題了,

Java併發程式設計6:RunnableThread實現執行緒的區別(含程式碼)

Java中實現多執行緒有兩種方法:繼承Thread類、實現Runnable介面,在程式開發中只要是多執行緒,肯定永遠以實現Runnable介面為主,因為實現Runnable介面相比繼承Thread類有如下優勢: 1、可以避免由於Java的單繼承特性而帶來的侷限; 2、增強程式的健壯性,程式碼能夠被多個執行

Java並發編程6:RunnableThread實現線程的區別(含代碼)

線程休眠 ket out dde 可能 休眠 stat for oid Java中實現多線程有兩種方法:繼承Thread類、實現Runnable接口,在程序開發中只要是多線程,肯定永遠以實現Runnable接口為主,因為實現Runnable接口相比繼承Thread類有如下優

Selenium3+webdriver學習筆記5模擬常用鍵盤滑鼠事件

#!/usr/bin/env python# -*- coding:utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.acti

vue中用computed簡單實現資料的雙向getter setter

vue是號稱實現了資料雙向繫結的框架,但事實上在日常開發中我們用的最多的就是 v-model 將data(vue例項中)裡面的是資料和view 相關聯,實現 data 更新,view自動重新整理的效果。但是,在移動成都上來說,這種資料雙向繫結的效果並不是特別的明顯。 今天,我用輸入框和 co

c++繼承組合,型,虛擬函式c++後期的本質

組合和繼承,實現了程式碼的可擴充套件性和相容性。 多型是在虛擬函式上得到了支援。 多型的原理,函式的呼叫繫結: 把函式的呼叫和函式體相關聯稱為捆綁。當捆綁是在程式執行之前完成的,稱為早期捆綁。c語言只支援早期繫結。晚期捆綁,物件通過自身得到類的資訊,然後找

第六章 註解式控制器詳解——SpringMVC強大的資料2

6.6.2、@RequestParam繫結單個請求引數值 @RequestParam用於將請求引數區資料對映到功能處理方法的引數上。 public String requestparam1(@RequestParam String username) 請求中包含username引數(如/

微信小遊戲開發4-動畫觸控事件

一、動畫 在JavaScript中,一般通過setInterval、setTimeout、requestAnimationFrame來實現動畫效果。 微信小遊戲對這些API提供了支援: setInterval() setTimeout() requestAnimationFr

js中特殊符號轉義base64作為引數url作為引數傳遞要注意的問題

+ 空格 / ? % & = # %2B %20 %2F %3F %25 %26 &3D %23 str = str.replace(/\+/g,"%2B"); 將+號替換為十六進位制 1.當圖片base64碼作為引數

微信支付統一下單,簽名錯誤生成的簽名測試工具生成的一樣還報錯解決方法

微信支付統一下單,簽名錯誤的原因很多,解決方法就是一個個排除。 簽名生成的通用步驟如下: 第一步,設所有傳送或者接收到的資料為集合M,將集合M內非空引數值的引數按照引數名ASCII碼從小到大排序(字典序),使用URL鍵值對的格式(即key1=value1&ke