tutorial ember data ember.js ember-data

ember.js - data - ember tutorial



Donde colocar los accesorios? (4)

Lo defino en la carpeta del modelo

//models/item.js var Item = DS.Model.extend({...}) Item.FIXTURES = [ { id:1, ... } ]; export default Item

¿Dónde debería definir los accesorios en una aplicación Ember JS generada con ember-cli? He probado numerosos lugares, como app.js y dentro de una carpeta llamada "accesorios".


Si usa findQuery para obtener sus datos, obtendrá este error cuando use el método anterior:

Error while loading route: Error: Assertion Failed: Not implemented: You must override the DS.FixtureAdapter::queryFixtures method to support querying the fixture store.

Para solucionar esto, creé un adaptador para el modelo e implementé el método queryFixtures para devolver los accesorios.

#/adapters/[model-name].js queryFixtures: function() { return [ { "key" : "value", }, { "key" : "value", }, etc... ] };

Tuve que hacer esto además de reopenClass a reopenClass en la definición de mi modelo como se indicó anteriormente. De hecho, fueron los mismos datos, corté y pegué. Esto huele un poco mal, pero funciona. Estoy seguro de que hay una mejor manera de hacerlo sin duplicar los accesorios, solo que no sé de qué se trata.


En lugar de utilizar accesorios, la forma en que lo estoy haciendo en Ember CLI 0.0.40 genera api stubs.

ember generate api-stub tasks

Soy un principiante node.js, pero por lo que parece, configura un script de servidor express para responder al punto final /tasks , que corresponde al nombre que pasa al comando, en el formato que espera el adaptador Ember REST . Luego, simplemente completa la matriz vacía con los datos de su dispositivo. Fácil pey!

El beneficio que veo es que no tendré que volver a trabajar nada más tarde para integrarlo con una aplicación apta, acercándome un poco más al lanzamiento de una aplicación real algún día.

Este generador aún no está completamente documentado. Solo se muestra como un elemento en el comando de ember help generate , que era valiente / desesperado / curioso / lo suficientemente estúpido como para intentarlo.


Después de cavar, descubrí que cambiar Ember.MODEL_FACTORY_INJECTIONS = true; en el archivo app.js a Ember.MODEL_FACTORY_INJECTIONS = false; está resolviendo el problema

A través de esta pregunta , también encontré otra solución donde no tienes que cambiar la configuración:

En lugar de definir los dispositivos como se describe, debe usar reopenClass :

//models/item.js var Item = DS.Model.extend({...}); Item.reopenClass({ FIXTURES: [ { id: 1, ... }, { id: 2, ... } ] }); export default Item

Feliz desarrollo con Ember y ember-cli :-)