Pregunta

Tengo una lista de respuestas como la siguiente:

enter image description here

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?

¿Fue útil?

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 renderció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;
  }
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top