El servicio de almacenamiento contiene todos los datos de los registros cargados desde el servidor. También es responsable de crear instancias de Model que envuelven los datos individuales de un registro, para que puedan vincularse en sus plantillas de Handlebars.

Por defecto, las aplicaciones tendrán un único Store servicio que se crea automáticamente.

La tienda se puede personalizar ampliando el servicio de la siguiente manera:

app/services/store.js

import Store from'@ember-data/store';exportdefaultclassMyStoreextendsStore

Puede recuperar modelos de la tienda de varias maneras. Para recuperar un registro para una identificación específica, use el Store‘s findRecord() método:

store.findRecord('person',123).then(function(person));

De forma predeterminada, la tienda se comunicará con su backend mediante un mecanismo REST estándar. Puede personalizar cómo la tienda se comunica con su backend especificando un adaptador personalizado:

app/adapters/application.js

importDSfrom'ember-data';exportdefault Adapter.extend();

Puede obtener más información sobre cómo escribir un adaptador personalizado leyendo el Adapter documentación.

Almacenar createRecord() frente a push() frente a pushPayload()

La tienda proporciona varias formas de crear nuevos objetos de registro. Tienen algunas diferencias sutiles en su uso que se detallan a continuación:

createRecord se utiliza para crear nuevos registros en el lado del cliente. Esto devolverá un nuevo registro en el created.uncommitted Expresar. Para conservar este registro en el backend, deberá llamar record.save().

push se usa para notificar a la tienda de Ember Data sobre registros nuevos o actualizados que existen en el backend. Esto devolverá un registro en el loaded.saved Expresar. El caso de uso principal para store#push es notificar a Ember Data sobre actualizaciones de registros (totales o parciales) que ocurren fuera de los métodos normales del adaptador (por ejemplo SSE o Enchufes web).

pushPayload es un contenedor conveniente para store#push que deserializará las cargas útiles si el serializador implementa un pushPayload método.

Nota: Al crear un nuevo registro utilizando cualquiera de los métodos anteriores, Ember Data se actualizará RecordArrays como los devueltos por store#peekAll() o store#findAll(). Esto significa que cualquier vinculación de datos o propiedades calculadas que dependan de RecordArray se sincronizarán automáticamente para incluir los valores de registro nuevos o actualizados.

Clases

  • AdaptadorPobladoRecordArray
  • PerteneceALaReferencia
  • errores
  • TieneMuchasReferencia
  • MuchosArray
  • PromesaArray
  • PromesaObjeto
  • matriz de registros
  • RecordReference
  • Referencia
  • RootState
  • Tienda