1

我正在学习 BackboneJS。我有几个问题。更改控制器或模型后重新渲染完整视图是否很常见?我是否需要在渲染功能开始时清除容器?

4

2 回答 2

1

首先,您不需要在渲染函数开始时清除容器(当然,除非您想清除容器)。

至于您的第一点,这显然取决于您的情况(视图的复杂程度),但是虽然有时仅重新渲染整个视图以覆盖以前的内容可能会有所帮助,但您不需要这样做。在backbone.js 中,您可以监听特定属性的更改,然后由于您可以访问DOM 元素,因此只需相应地更新部分视图。

例如

initialize : function () {    _.bind("change:name", nameChanged, this); },

nameChanged: function(event) {    this.$el.find('.name').val(this.model.get('name'); }
于 2012-06-25T21:53:56.573 回答
1

1) 重新渲染一个完整的视图实际上比更新部分视图更容易,只要视图本身是合理的原子的。

2) 不,您不需要清除容器,它与 Backbone 无关,但与您的 DOM 库(例如 jQuery)和模板引擎(例如 Handlebars)无关。所以你做的是要么

this.$el.html(this.template(data)); // template is a compiled Handlebars template

或者

this.$el.html($('<div />').text('Whatever'); // using jQuery

在任何情况下,都会$el.html将 HTML 重新插入到视图的目标元素中。

于 2012-06-26T00:26:53.770 回答