" + remaining + done + "
"); }, updateRemaining: function() { this.$el.find("span.remaining").html(this.collection.remaining()); }, updateTotal: function() { this.$el.find("span.done").html(this.collection.done()); } }); App.TodoCollection = Backbone.Collection.extend({ remaining: function() { return this.filter(function() { return this.get('isDone') === false; }).length; }, done: function() { return this.length - this.remaining(); } }); COLLECTION VIEW.{{remaining}} remaining and {{done}} done
TEMPLATE.{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}{{name}} More details
{{#unless readOnly}} {{view App.EditPerson}} {{/unless}}