Para aprender la estructura principal Im creando una aplicación similar a Twitter. Entonces, usted sabe que Twitter envía una solicitud GET al servidor cada N segundos para verificar si hay nuevos tweets. Si hay nuevos tweets, crea los elementos ocultos li y muestra el botón con "N nuevos tweets". Si hace clic en él, muestra los elementos ocultos li, que muestran los nuevos tweets. Pero el comportamiento es diferente cuando agrega un nuevo tweet: el tweet es visible. No tiene que hacer clic en el botón para verlo.Backbone collection.create() no devuelve el modelo actualizado
Ya he hecho la primera parte, para los tweets ocultos. Para la parte de la publicación de un nuevo tweet y que lo muestra direclty de, pensé que sería fácil de hacer mediante la creación del nuevo modelo, llamando collection.create() y que activa el evento correcto, algo así como:
var newTweet = new Tweet();
newTweet.set(/* set the attributes here. Some attributes are missing, because they are calculated server side */);
var created_tweet = this.collection.create(newTweet, { silent: true, wait: true }); // I choose silent=true because the add event on my collection is in charge of adding the new hidden tweets when there are new ones on the server
this.collection.trigger("posted_new_tweet", created_tweet);
Entonces , mi colección está suscrita al evento "posted_new_tweet", por lo que cada vez que un usuario publica un nuevo tweet, se está llamando a un método específico de mi colección. Este enfoque funcionaba bien hasta que recibí errores debido a la variable created_comment pasada en el disparador: no es "completa". Quiero decir que el modelo tiene algunos atributos como "id" o * "created_on" * que no están definidos. Estos atributos se calculan desde el lado del servidor, pero pensé que si pasaba wait = true, esperaría y actualizaría mi modelo con la respuesta dada por el servidor (cuando se realiza una solicitud POST al servidor, devuelve el nuevo modelo creado en json)
¿No debería mi modelo tener también los atributos del lado del servidor? ¿Es el enfoque correcto para tal cosa? En caso de que no lo sea, ¿cómo puedo tener 2 métodos diferentes para mostrar una vista de colección?
¡Gracias!
Así es :) ¡Gracias! – fiunchinho
Creo que en las versiones posteriores de Backbone, los argumentos ahora son 'nextModel' y' response'. – IanS