Backbone中 View之間傳值的解決辦法

  Backbone中的View就是用來展現由Model層傳出的數據,或者在View裏產生的一些數據,包括輸入框中輸入等產生的數據,由當前View傳遞到另一個View層裏,應該怎麼辦呢,我以前讀到一位博主《Backbone View的三種通訊方式 》寫的尤其的清晰,在我實際的項目中,經常使用的也就是最後一種方式。html

   嘿嘿,分享知識是一件快樂的事情,我就直接借鑑表述一下以下:react

  直接用 Backbone 做爲事件註冊機,

  

  代碼以下:ide

var ApplicationView = Backbone.View.extend({

  initialize : function(){
    this.documentView = new DocumentView();
    this.sidebarView = new SidebarView();
  },

});

var DocumentView = Backbone.View.extend({

  onEdit : function(){
    Backbone.trigger('documentEdit');
  }

});

var SidebarView = Backbone.View.extend({

  initialize : function(options){
    Backbone.on('documentEdit', this.onDocumentEdit, this);
  },

  onDocumentEdit : function(){
    // react to document edit.
  }

});

  使用Backbone 時間註冊機方法,不單單可以實現同一個父級View下不一樣的子級View之間的信息傳遞,而且還可以實現不一樣父級View下各個子級View的信息傳遞,我當時剛接觸的時候感受這個方法特別的好使,可是後來又出現了兩個我有點困惑的地方,我也一併分享下。this

  第一個就是當咱們由父級View向子級View傳遞信息或者數據的狀況,用事件註冊應該也是能夠的,可是在項目中,我採用的是在初始化視圖的時候,將父級View中的要傳遞的信息分配個子View,這樣視圖render出以後,就已經有了父級View給予它的數據。就如這樣:htm

  

    this.receive是由父級View已經包裝好的,在初始化子View時候就把this.receive下發就行了。blog

 

 

  第二種狀況就是同一個子級View之間的傳遞,這種狀況可能你們都懂的,我仍是解釋一下吧,就是在一個子級View裏面定義一個針對這一個View的全局變量,而後經過this引用這個變量就Ok。事件

 

  這是我對backbone數據傳遞的一點心得,望能對你們有一點幫助,有描述不清的地方,能夠再交流。backbone

相關文章
相關標籤/搜索