ember.js - all - Ember App Kit con datos de brasas
ember model get all (3)
Estoy tratando de comenzar un nuevo proyecto con el kit de aplicación de brasas y los datos de la asamblea usando ES6. Pude crear una tienda usando el siguiente código en adapter.js
var ApplicationAdapter = DS.FixtureAdapter.extend();
export default ApplicationAdapter;
Sin embargo, no puedo crear un modelo y acceder a él. En models/account.js
tengo esto
var Account = DS.Model.extend({
name: DS.attr(''string'')
});
Account.FIXTURES = [
{
''id'': 1,
''name'': ''Acc 1''
}, {
''id'': 2,
''name'': ''Acc 2''
}
]
export default Account;
y en mis routes/accounts.js
tengo esto:
var AccountsRoute = Ember.Route.extend({
model: function() {
var store = this.get(''store'');
return store.find(''account'');
}
});
export default AccountsRoute;
En esta etapa, simplemente estoy tratando de obtener una lista de cuentas de los dispositivos que se muestran en la pantalla. La ruta funciona bien y si pongo datos estáticos (como la ruta de índice) todo funciona bien. Sin embargo, con el código anterior, me encuentro con problemas
DEPRECATION: Action handlers contained in an `events` object are deprecated in favor of putting them in an `actions` object (error on <Ember.Route:ember352>)
at Object.triggerEvent (http://localhost:8000/vendor/ember/index.js:30519:13)
at trigger (http://localhost:8000/vendor/ember/index.js:29641:16)
at handleError (http://localhost:8000/vendor/ember/index.js:29903:9)
at invokeCallback (http://localhost:8000/vendor/ember/index.js:8055:19)
at null.<anonymous> (http://localhost:8000/vendor/ember/index.js:8109:11)
at EventTarget.trigger (http://localhost:8000/vendor/ember/index.js:7878:22)
at http://localhost:8000/vendor/ember/index.js:8180:17
at Object.DeferredActionQueues.flush (http://localhost:8000/vendor/ember/index.js:5459:24)
at Object.Backburner.end (http://localhost:8000/vendor/ember/index.js:5545:27) index.js:394
Error while loading route:
Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
index.js:394
Uncaught #<Object> index.js:30566
¿Dónde estoy equivocado?
Su modelo de Account
está utilizando DS.RESTAdapter
lugar de DS.FixtureAdapter
, porque está configurando el adaptador en ApplicationAdapter
, el esperado es AccountAdapter
. Entonces recibe un error del ajax, probablemente porque la url no coincide con un servidor.
Para configurar DS.FixtureAdapter
por modelo, use:
var AccountAdapter = DS.FixtureAdapter.extend();
export default AccountAdapter;
O como adaptador global para todos los modelos:
App.Store = DS.Store.extend({
adapter: DS.FixtureAdapter
});
Espero que ayude
Estaba obteniendo el mismo error ...
Sin embargo, pude solucionarlo importando mi ApplicationAdapter y usándolo para definir mi tienda:
app / adapters / application.js:
var ApplicationAdapter = DS.FixtureAdapter.extend();
export default ApplicationAdapter;
app / store / application.js:
import ApplicationAdapter from ''appkit/adapters/application'';
var Store = DS.Store.extend({
adapter: ApplicationAdapter
});
export default Store;
Tenga en cuenta que aún no he cambiado el nombre de la aplicación predeterminada de appkit, es posible que tenga que cambiar este nombre o las rutas para hacer que esta función sea adecuada para usted.
Creo que el verdadero problema fue que definiste tu Adaptador de Fixture en los adaptadores / adapter.js .
Cuando llamaste:
store.find(''account'');
Encontró correctamente el modelo pero luego buscó el adaptador correcto. No tiene un adapters / account.js por lo que utilizó la aplicación predeterminada, que se ha mencionado es un RESTAdapter.
Para que su ejemplo funcione, simplemente cambie el nombre del archivo.