Cómo re-procesamiento parcial de modelo en la columna vertebral?
-
21-12-2019 - |
Pregunta
Tengo una lista de respuestas como la siguiente:
cada elemento de la lista es una columna vertebral del modelo.
{
title: 'answer title...',
content: 'answer content...',
voteStatus: 'up'
}
Cuando hago clic en el botón de arriba-votar o no votar, El modelo del voteStatus
va a ser el cambio, y esta respuesta de los artículos no se vuelva a representar.
Si no tiene una foto en la respuesta del contenido, la imagen volverá a representar también, Pero esto no es lo que quiero.
¿Cómo podría yo acabo de volver a representar el botón de votación cuando acabo de cambiar voteStatus
?
Solución
Tiene una subvista en el interior de su AnswerView
que sólo es responsable de la representación de la votación flechas, VotingArrowsView
.Usted podría inicializar esta subvista dentro de la initialize
la función de AnswerView
y, a continuación, anteponer la subvista del el
a la vista principal de la el
cuando render
ción de los padres de la vista:
var AnswerView = Backbone.View.extend({
initialize: function(options){
this.template = _.template($('#answerTmpl').html());
this.votingArrowsView = new VotingArrowsView({ model: this.model });
...
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
this.$el.prepend(this.votingArrowsView.render().el);
return this;
},
...
});
var VotingArrowsView = Backbone.View.extend({
initialize: function(options){
this.template = _.template($('#votingArrowsTmpl').html());
this.listenTo(this.model, 'change:voteStatus', this.render);
},
render: function(){
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});