2012-06-27 18 views
5

He visto AngularJS y Backbone.JS ambos parecen grandes frameworks, sin embargo mi base de código existente no usa el patrón MVC. Ambos marcos te obligan a comenzar desde cero o refactorizar toda tu base de código para seguir el patrón MVC.Buscando un framework de JavaScript que proporcione plantillas y enlace de datos que no sean MVC

Casi todos mis datos son objetos personalizados con muchos myobject.prototype.myfunction = ..., luego se serializan a/desde JSON y se almacenan en el servidor y las plantillas de jquery se procesan.

Ahora uso plantillas jquery y funcionan muy bien. Para ser justos, no tengo ningún problema con su uso, excepto que realmente no me gusta la combinación de lógica comercial y elementos DOM. Si las plantillas jQuery simplemente tuvieran un enlace de datos bidireccional, estaría en el cielo, pero en este momento no lo hacen. Sé que jsRender y jsViews parecen prometedores, pero su futuro aún no está escrito en piedra y no está listo para la producción. Necesito algo sobre lo que pueda construir código de producción hoy y soportar y crecer sin tener que reescribir/refactorizar cada dos años.

Así mostos:

  • jQuery compatible
  • sea de extremo a extremo comprobable
  • enlace de datos
  • uso de JavaScript objetos existentes
  • no requiera grandes refactorización

PD Si mi opinión sobre Angular o Backbone está mal informada, entonces apúntame en la dirección correcta.

+0

¿Ha mirado http://api.jquery.com/jquery.tmpl/? – Lance

+1

jquery.tmpl se descontinúa – Dimitri

+1

¿qué tal http://knockoutjs.com/? –

Respuesta

3

El plugin Data Link fue diseñado para ser utilizado con plantillas de jQuery, aunque ya no se admiten. El código y los ejemplos se pueden encontrar en la página del proyecto github.

Como se ha señalado, el autor planea sustituirlos por un nuevo proyecto llamado jsViews

Knockout.JS es un marco de enlace de datos populares que fue diseñado originalmente con plantillas jQuery en mente. Todavía los admite, aunque desde entonces ha implementado su propio sistema de plantillas. Consulte el video de la charla sobre rayos de Steve Sanderson para ver una demo de las plantillas de Knockout y jQuery en acción.

+1

Solo quería que todos lo supieran, el framework que finalmente utilicé fue Knockout.js. Estoy extremadamente feliz con ello. No es perfecto, pero creo que es mucho mejor que otros marcos. Está bien documentado, hay una buena comprensión de él en la comunidad y tiene mucho sentido para mí. Sé que lo llaman MVVM o alguna BS así, ignoran todo eso y simplemente saltan a los ejemplos y comienzan a usarlo. El uso se aclarará muy rápidamente. – ethermal

3

Amar jsRender y jsViews

Esto es en realidad un tenedor de jquery.tmpl. Mismo autor. Aún están en lanzamiento, pero se están convirtiendo en un nuevo estándar y con suerte se reintegrarán a jquery en el futuro.

+0

tan bueno como parece, es pre-beta y estoy bastante seguro de que va a sufrir lo mismo destino de las plantillas jquery. Así que estoy un poco preocupado por su futuro. ¿Lo estás usando para el código de producción? – ethermal

+0

Sí, he utilizado otros productos pre-beta en el código de producción. botones fg por ejemplo que terminaron entrando en jquery.button. No me importa reescribir el código. Sé que es molesto, pero el amor es un pionero :) Además, tengo bastante buena sensación de que no va a sufrir el mismo destino. – Dimitri

0

Parece que desea un nuevo marco de plantillas que proporciona enlace de datos, mientras que Angular y Backbone tienen un alcance más amplio.

Sé que LinkedIn usa Dust.js, que se eligió después de que hicieron una biblioteca de plantillas de JavaScript extensive evaluation.

2

Para una solución agnóstica de marco hacia el enlace de plantilla, haga el pago Rivets.js. Si bien Rivets se puede usar con la mayoría de los frameworks/micro-frameworks MVC populares, también es fácil trabajar con él si no está usando ningún framework MVC, como es su caso. Sin embargo, Rivets.js no viene con soporte integrado para ningún lenguaje de plantillas per se.

Si realmente desea continuar usando JQuery.tmpl, le recomendaría (como algunas de las personas anteriores) que consulte KnockoutJS. Tenga en cuenta que si cambia a KnockoutJS, dado el patrón de ejemplos demostrativos, es bastante fácil mezclar la lógica de dominio dentro de sus enlaces declarativos. Por lo tanto, requeriría un poco de planificación para mantener el aislamiento completo de la lógica empresarial y la capa de presentación. Además del sitio web oficial, para obtener una mejor comprensión de Knockout JS, le recomiendo que consulte knockmeout.net para obtener algunos recursos en profundidad. También this post podría ayudarlo en su decisión.

Teniendo en cuenta que el futuro de jquery.tmpl es algo cuestionable a la hora de escribir este documento, le recomendaría que busque otras soluciones. KnockoutJS se puede integrar con lenguajes de plantillas de terceros con facilidad.

+0

gracias, ver arriba Knockout es en última instancia lo que elegí. – ethermal

Cuestiones relacionadas