Как я могу использовать DS.RESTAdapter с ember cli?

Вопрос:

Я создал модель в моделях /application.js:

import DS from 'ember-data';

export default DS.Model.extend({
name: DS.attr('string')
});

И создал адаптер в адаптерах /application.js:

import Ember from "ember";
import DS from 'ember-data';

export default DS.RESTAdapter.extend({
host: 'http://site.work/rest/v1/'
});

Маршрут в маршрутах /application.js:

import Ember from 'ember';
export default Ember.Route.extend({
model: function () {
return this.store.all('application');
});

Шаблон в шаблонах /application.hbs

{{#each item in model}}
<li>{{item.name}}</li>
{{/each}}

app.js

import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';

Ember.MODEL_FACTORY_INJECTIONS = true;

var App = Ember.Application.extend({
modulePrefix: 'chat', // TODO: loaded via config
Resolver: Resolver
});

loadInitializers(App, 'chat');

export default App;

router.js

import Ember from 'ember';

var Router = Ember.Router.extend({
location: ChatENV.locationType
});

Router.map(function() {
this.route("application");
});

export default Router;

Пример JSON с сервера: {"application":[{"id":"1","name":"qwe"},{"id":"2","name":"qwe2"}]}

Но моя модель пуста, и я не могу найти никаких запросов xhr в инструменте разработчика.

Как использовать DS.RESTAdapter в Ember Cli?

Примечание. Когда я добавляю эту строку в маршрутизатор, она работает:

this.store.push('application',{'id':5, 'name':'Is this a question?'});

Ответ №1

Я не уверен, что имя вашей модели (application) вызывает странное поведение, поскольку ember (-cli) также использует это имя как root для таких вещей, как адаптер, маршрут и т.д.

Кроме того, я бы определил свой адаптер следующим образом:

import DS from 'ember-data';

export default DS.RESTAdapter.extend({
namespace: 'rest/v1'
});

и затем запустите свой сервер с помощью:

ember server --proxy=http://site.work

Оцените статью
TechArks.Ru
Добавить комментарий