#ember.js #ember-data
#ember.js #ember-данные
Вопрос:
У меня есть приложение Ember, использующее API, в котором реализовано большинство моделей, но некоторые из них нет, и для них я хотел бы предоставить приспособления.
App.ApplicationAdapter = DS.RESTAdapter.extend({
host: 'http://api.com'
});
App.Post = DS.Model.extend({
title: DS.attr(),
body: DS.attr(),
author: DS.attr()
});
// ...
this.store.find('post', 1); // http://api.com/post/1
// ...
App.Tag = DS.Model.extend({
hashtag: DS.attr(),
color: DS.attr()
});
App.Tag.FIXTURES = [
{ hashtag: 'foo', color: '#000' },
{ hashtag: 'bar', color: '#fff' }
]
// ...
this.store.find('tag', 1) // searches among fixtures
Возможно ли это?
Комментарии:
1. Если вы используете
ember-cli
, у вас может быть адаптер для конкретной модели. Например adapters/tag.js который расширяет DS.FixtureAdapter.
Ответ №1:
Вы можете сделать адаптеры специфичными для моделей, выполнив это: App.TagAdapter = DS.FixtureAdapter.extend();
Комментарии:
1. Это более точно, что я хотел 🙂
Ответ №2:
Как насчет использования другой модели с этим конкретным маршрутом?
App.TagRoute = Ember.Route.extend({
model: function() {
return [
{ hashtag: 'foo', color: '#000' },
{ hashtag: 'bar', color: '#fff' }
];
}
});
Комментарии:
1. Мне нужны эти теги, сохраненные, потому что я использую их в другом месте. Или я все еще могу захватить их таким образом?
2. На самом деле, это именно то, что мне было нужно.
App.TagController
model
автоматически присваивается этому массиву, поэтому я могу получить к нему доступ таким образом. Спасибо!