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
Intenta echar un vistazo a restangular .
No lo he implementado en ningún lado, pero vi una charla hace unos días. Parece resolver el mismo problema de forma angular.
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.