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 laEmber.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.