tutorial ember data ember.js ember-data

ember.js - data - ember tutorial



Agregue dinĂ¡micamente el objeto js a la matriz modelo en 1.13 (3)

Tengo el siguiente código:

var msg = this.store.createRecord({text:''first title'', createdAt: "2015-06-22T20:06:06+03:00" }) this.get(''model.content'').pushObject(msg); msg.save();

Creamos nuevo registro. Luego presione en el modelo para mostrar. Funcionó perfectamente en la versión 1.9, pero después de actualizarlo a la versión más reciente, se rompe y muestra este error:

TypeError: internalModel.getRecord no es una función

Después de algunas investigaciones salí a esta solución

this.get(''messages.content'').unshiftObject(message.internalModel);

y en parte ayuda. Ahora tengo dos problemas:

  • No estoy seguro si el uso de la API privada de datos de brasas es una buena idea
  • Tengo un retraso molesto entre agregar el registro al modelo y representarlo en la pantalla. Más que eso si no llamo a msg.save (); el registro no está renderizado Por lo que entiendo, espera hasta que tengamos respuesta del servidor y solo entonces la procesemos. Pero necesito un comportamiento opuesto: primero tengo que mostrar el registro y luego guardarlo (mostrando el estado de guardado para el usuario), de esta manera el usuario piensa que todo va extremadamente rápido.

Antes de 1.13:

this.get(''content'').pushObjects(messages);

Después de 1.13:

messages.forEach(functio(message) { this.get(''model.content'').pushObject(message._internalModel); });


Haría que todos los modelos devuelvan a la matriz, agregaría la matriz a esta matriz

setPeople:function(){ this.set(''people'',this.get(''content'').toArray()) }.observes(''content'')

Luego, encuentra más modelos de persona, a la matriz.

getMoreUsers(){ var self = this; this.set(''offset'', this.get(''offset'')+1); self.store.findAll(''person'').then(function(people){ self.get(''people'').pushObjects(people.toArray()); });


Una posible solución sin recurrir a la API privada es usar toArray() ( problema de github ):

var array = this.get(''messages'').toArray() array.addObjects(this.get(''messages'')) array.addObject(msg) this.set(''messages'', array)