如何更新Backbone视图的部分?

时间:2014-07-25 12:01:01

标签: javascript jquery html backbone.js

我使用Backbone作为一个webapp,我在其中从API调用中获取模型并使用它填充视图。在该视图中,有几个东西,其中包括textarea和某种聊天区域(其中包含其他视图)。到目前为止一切都很好。

我现在想再次调用API,如果初始模型已更改,我想更新该视图的部分内容。我现在的问题是,我担心如果我重新加载视图,人们可能在textarea中写的东西就不见了。 我想我可以使用jQuery进行调用并更新部分视图,但我认为这并不是Backbone背后的想法。

所以现在我的问题是;如何在不重新加载整个视图的情况下使用Backbone更新部分初始视图?欢迎所有提示?

2 个答案:

答案 0 :(得分:1)

通常,视图绑定到模型,它代表DOM的一部分。 当你说模型改变时视图应该更新时,我首先想到的是这将是一个与输入框分开的视图。
例如,可以有一个父视图表示为包装元素,多个子视图表示不同的模型 您仍然可以从父视图管理事件,因为事件会冒出来 在处理子视图时,考虑正确的视图清理很重要。 Marionette.js是一个管理这个井的图书馆。

或者,您可以临时缓存用户输入并在渲染后将视图填充回来。

答案 1 :(得分:0)


您的观点需要倾听模型更改。如果渲染视图,则将模型传递给模板。在视图的初始化函数中,您告诉您查看模型更改的监听。请参阅here

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