ember computed array ember.js ember-data javascript-framework ember-model

ember.js - array - ember model computed



¿Usando DS.model o Ember.model o Ember.Object al definir un modelo? (1)

Este screencast: http://www.embercasts.com/episodes/getting-started-with-ember-model usó Ember.model para crear un modelo de persona como este:

App.Person = Ember.Model.extend({ name : Ember.attr() })


Los docs dan este ejemplo usando Ember.Object

App.Person = Ember.Object.extend({ say : function(thing) { alert(thing); } });

Además, en la sección de modelos de definición , se proporciona este ejemplo que utiliza DS.model

App.Person = DS.Model.extend({ firstName: DS.attr(''string''), lastName: DS.attr(''string''), birthday: DS.attr(''date''), fullName: function() { return this.get(''firstName'') + '' '' + this.get(''lastName''); }.property(''firstName'', ''lastName'') });

¿Cuál es la diferencia entre estos tres y cuándo usar cuál?


Ember.Object - madre de todos

Como se indica en este article muy ilustrativo sobre Ember.Object:

Casi todos los objetos en Ember.js se derivan de un objeto común: Ember.Object. Este objeto se utiliza como base para vistas, controladores, modelos e incluso la aplicación en sí.

Esta simple decisión arquitectónica es responsable de gran parte de la coherencia en Ember. Debido a que cada objeto se ha derivado del mismo objeto central, todos comparten algunas capacidades centrales. Cada objeto Ember puede observar las propiedades de otros objetos, vincular sus propiedades a las propiedades de otros objetos, especificar y actualizar las propiedades computadas, y mucho más.

Ahora a las diferencias y cuando podría usarlas dependiendo de su caso de uso.

Ember.Object

  • es la clase principal ember.js para todos los objetos Ember. Es una subclase de Ember.CoreObject con la Ember.Observable aplicada.
  • lo usa para crear objetos arbitrarios, esta clase también es la base para hacer posible el enlace de datos.

Ember.Model

  • es utilizado por el ember-model lib y extiende Ember.Object
  • usa esta clase para definir un modelo si usa ember-model como su biblioteca de persistencia

DS.Model

  • es usado por ember-data y es la clase base del sistema ORM que también se extiende desde Ember.Object
  • lo usa cuando usa datos de brasas como su biblioteca de persistencia para definir sus modelos y relaciones, etc.

Espero eso ayude.