tutorial significado backbone backbone.js angularjs

backbone.js - significado - backbone js tutorial



Uso de modelos Backbone con AngularJS (7)

Recientemente, estaba pensando en las diferencias y similitudes entre Backbone.js y AngularJS.

Lo que encuentro realmente conveniente en Backbone son los Backbone-Models y Backbone-Collections. Solo tienes que configurar el urlRoot y luego la comunicación con el servidor back-end a través de Ajax básicamente funciona.

¿No debería ser posible usar solo Backbone-Models and Collections en la aplicación AngularJS? Así que tendríamos lo mejor de ambos mundos de enlace de datos bidireccional con AngularJS y acceso conveniente al lado del servidor (u otras opciones de almacenamiento) a través de Backbone-Models and Collections.

Una búsqueda rápida en Internet no apareció en ningún sitio que sugiriera este escenario de uso. Todos los recursos hablan de utilizar uno u otro marco.

¿Alguien tiene experiencia con el uso de Backbone-Models o Collections con AngularJS? ¿No se complementarían muy bien? ¿Me falta algo?


Deberías mirar la regla repetitiva angularJS con el análisis here . Parse es columna vertebral, pero no exactamente columna vertebral. Ahí es donde comienzo mi idea de un proyecto angularJS backboneJS



Me estaba preguntando lo mismo-

Este es el caso de uso:

salesforce mobile sdk (hybrid) tiene una función llamada smartstore / smartsync, que espera modelos / colección de red troncal, que se guarda en el almacenamiento local para el acceso sin conexión.

Y lo adivinaste bien, queremos usar angularjs para el resto de la aplicación híbrida.

Pregunta válida

-ree


Me preguntaba si alguien había hecho esto también. En mi aplicación angular más reciente / primera, encontré que Angular carecía de modelos y colecciones (¡a menos que me falta algo por supuesto!). Claro que puede extraer datos del servidor utilizando $ http o $ resource, pero qué sucede si desea agregar métodos / propiedades personalizadas a sus modelos o colecciones. Por ejemplo, supongamos que tiene una colección de automóviles y desea calcular el costo total. Algo como esto:

Con una Colección Backbone, esto sería bastante fácil de implementar:

carCollection.getTotalCost()

Pero en Angular, probablemente deba envolver su método personalizado en un servicio y pasarle su colección, así:

carCollectionService.getTotalCost(carCollection)

Me gusta el enfoque Backbone porque, en mi opinión, es más limpio. Sin embargo, conseguir el enlace de datos bidireccional es complicado. Mira este ejemplo de JSBin.

http://jsbin.com/ovowav/1/edit

Cuando edite los números, collection.totalCost no se actualizará porque las propiedades de car.cost no se establecen a través de model.set ().

En cambio, básicamente utilicé mis propios constructores / "clases" para modelos y colecciones, copié un subconjunto de la API de Backbone de Backbone.Model y Backbone.Collection, y modifiqué mis constructores / clases personalizadas para que funcionaran con el enlace de datos de Angular.


Pregunta válida para seguro.

Muchas limitaciones con la implementación actual de $ resource, que entre otras cosas no tiene administración interna de colecciones como Backbone.Collection. Habiendo escrito mi propia capa de gestión de recursos / colección en angular (utilizando $ http, not $ resource), ahora veo si puedo sustituir gran parte de los componentes internos de las colecciones y modelos principales.

Hasta ahora, la parte de buscar y agregar es impecable y guarda el código, pero el enlace de esos modelos troncales (o los atributos dentro de, más bien) a ng-modelos en las entradas para edición aún no está funcionando.

@ericclemmons (github) ha hecho lo mismo y consiguió que los dos se casen bien - Le preguntaré, pondré a prueba mi prueba y publicaré la conclusión ...


Tenía una idea similar en mente y se le ocurrió esta idea: Agregue solo un atributo de modelo getter y setter for ever.

Backbone.ngModel = Backbone.Model.extend({ initialize: function (opt) { _.each(opt, function (value, key) { Object.defineProperty(this, key, { get: function () { return this.get(key) }, set: function (value) { this.set(key, value); }, enumerable: true, configurable: true }); }, this); } });

Ver el violín: http://jsfiddle.net/HszLj/


un enlace de trabajo por ejemplo arriba ... http://jsbin.com/ivumuz/2/edit

demuestra una forma de trabajar alrededor de los modelos Backbone con AngularJS. pero la conexión setters / getters sería mejor.