2014-07-25 26 views
0

我正在使用Backbone作爲一個web應用程序,我從API調用中獲取一個模型並用它填充一個視圖。在這個觀點中,有一些東西,其中包括textarea和某種聊天區域(其中包含其他視圖)。到現在爲止還挺好。如何更新骨幹視圖的部分?

我現在想再次調用API,如果初始模型更改,我想更新該視圖的部分。我現在的問題是,如果我重新加載視圖,恐怕人們寫在textarea上的東西不見了。 我想我可以打電話和使用jQuery更新部分視圖,但我認爲這不是Backbone背後的想法。

所以我的問題是現在;如何在不重新加載整個視圖的情況下使用Backbone更新初始視圖的某些部分?所有提示都歡迎?

回答

1

通常情況下,視圖綁定到模型,它代表了DOM的一部分。 當你說視圖應該在模型更改時更新時,我首先想到的是這將是與輸入框分開的視圖。
例如,可能有一個父視圖表示爲包裝元素,而多個子視圖表示不同的模型。
您仍然可以從您的父視圖管理事件,因爲事件會冒泡。
儘管在使用子視圖時考慮正確的視圖清理是非常重要的。 Marionette.js是一個很好的管理這個庫的庫。

或者,您可以臨時緩存用戶輸入並在渲染後填充視圖。

0

您的觀點需要傾聽模型更改。如果您渲染視圖,則將模型傳遞給模板。並且在視圖的初始化函數中,您告訴您查看對模型更改的監聽。見here

var view = Backbone.View.extend({ 
     initialize: function(){ 
      this.model.on('change', this.render, this); 
     }, 
     render: function() { 
      // ... 
     } 
    });