Fireworks Backbone.js renderizam duas vezes na coleção add
Eu estou trabalhando com o aplicativo de exemplo Todosempacotado com a última versão do Backbone (0.9.2) enquanto aprende sobre o Backbone.js. Minha pergunta é: por que o aplicativo foi projetado para disparar o evento de renderização duas vezes ao adicionar um modelo à coleção Todos?
Se eu colocar esta linha dentro da função de renderização do TodoView:
<code>// Re-render the titles of the todo item. render: function() { console.log("Rendering!"); this.$el.html(this.template(this.model.toJSON())); </code>
Então "Renderização!" aparece duas vezes no console. Eu entendo isso porque a visão liga o evento de mudança do modelo ao render da visão:
<code>initialize: function() { this.model.bind('change', this.render, this); </code>
E render é chamado em addOne, que é ligado ao evento add de Todos:
<code>addOne: function(todo) { var view = new TodoView({model: todo}); this.$("#todo-list").append(view.render().el); }, </code>
Mas esta prática padrão de design de renderização dupla? Parece que a exibição deve ser renderizada na criação (ou entrada no DOM) e, novamente, se o modelo subjacente for alterado. Nesse caso, nada está sendo alterado, mas a renderização está sendo chamada duas vezes.
Mais uma vez, estou apenas aprendendo o Backbone, então posso ter um mal-entendido básico que está levando à minha confusão.