backbone.js – ¿Cómo se relacionan los models / vistas con el elemento DOM?

Solo estoy jugando con backbone.js y algo de magia jQuery para preparar algunos proyectos futuros.

Un caso de testing contiene una tabla cuyas filas son representadas por una vista de networking troncal. Se reproducen perfectamente en el cambio de valor. Después, toda la tabla se ordera por un plugin jQuery (Clasificación de tabla animada), las filas se mueven a nuevas posiciones. De hecho, este process funciona una vez, pero la próxima vez, las filas aparecen dos veces, todo termina en un caos.

¿Es posible que el enlace entre el elemento DOM y la vista de networking troncal no pueda manejar dicho cambio? ¿Hay alguna solución?

Cuando está desarrollando un framework Modelo / Vista como backbone.js o knockout.js, me parece que necesita reorganizar su pensamiento e implementaciones para hacer cambios a lo que se muestra (como la sorting) en el Modelo, y no permitir que sucedan en la vista (como usar un plugin jquery).

Si terminas usando un script de vista para hacer algo elegante (las animaciones son un buen ejemplo), depende de ti asegurarte de que el model se actualice correctamente, ya sea inhabilitando o ampliando el enlace.

También tenga en count que, de acuerdo con la documentation , ese complemento de sorting animado elimina las filas de su tabla del DOM, las agrega a los nuevos DIV, los anima, los elimina de los DIV y los restaura a la tabla. Me pregunto si, una vez hecho esto, la networking troncal ha perdido la pista de esos TD, y cuando vuelve a reproducirse después del cambio, solo agrega un nuevo set ya que el último set se 'perdió'.

Gracias por tus respuestas. De hecho, el clasificador de tablas hace mucho lo que hace que sea difícil para la networking troncal mantener enlaces. Cambié al gran plugin Quicksand que usa una list oculta para animar cambios en otra list (visible). Se adapta mejor a backbone.js.

Su colección mantiene un order para sus models y, por lo tanto, sus vistas correspondientes. Si una fuerza externa (como un plugin de orderación de tabla jQuery) modifica el order de las vistas, este cambio no se refleja inherentemente en la colección Backbone, por lo que las cosas se desincronizan rápidamente.

Además, si el clasificador de tablas clona elementos y elimina el original, Backbone probablemente perdería el seguimiento de las vistas y terminaría recreándolas.