2016-09-08 2 views
0

Работа над приложением, которое имеет events и каждый event имеет много imagesEmberJS hasMany ассоциация выборки не работает должным образом

Вот ассоциация:

images: DS.hasMany("event-image", { async: true })

EventImage Модель:

`import DS from 'ember-data'` 

EventImage = DS.Model.extend 
    event: DS.belongsTo("event") 

    ### NATURAL ATTRIBUTES ### 
    imageUrl: DS.attr("string", { defaultValue: "" }) 
    fileName: DS.attr("string") 
    fileSize: DS.attr("string") 
    primary: DS.attr("boolean", { defaultValue: false }) 
    featured: DS.attr("boolean", { defaultValue: false }) 

`export default EventImage` 

При посещении /events/1722/edit, я [tryi нг в] отображать изображения, как так:

<div class="field"> 
    <label class="label label__text">More images</label> 

    {{#core-image-multiple-uploader model=model processedFiles=model.images}} 
     Select additional event photos (10 max). 
    {{/core-image-multiple-uploader}} 
    </div> 

Ответ JSON API, возвращает атрибут, который выглядит как:

"image_ids": [ 
    2474, 
    2469, 
    2468 
] 

При загрузке страницы, я могу видеть три изображения на странице, но при попытке получить данные для загрузки каждого изображения, маршрут API, который вызывается, - /api/event_images/2469. Мне нужно добавить в параметр запроса event_id (или даже лучше, введите event_images вложенные под событиями, чтобы вызов API был /events/:event_id/event_images).

Я нахожусь на EmberJS v1.10 и пользуюсь ActiveModelAdapter. Это выглядит следующим образом:

`import Ember from 'ember'` 
`import DS from 'ember-data'` 


ApplicationAdapter = DS.ActiveModelAdapter.extend 
    host: window.EmberENV.apiURL 
    headers: 
    "Accept" : "application/json, text/javascript; q=0.01" 

`export default ApplicationAdapter` 

Я являюсь Newb EmberJS, упал в этот проект, так что мои извинения здесь, пытаясь играть в догонялки.

ответ

0

если у вас нужен другой URL запроса, то условный. Тогда U может написать отдельный адаптер для этого модального. Вы должны переопределить метод

buildUrl адаптер

От EmberJS Docs

buildURL (modelName, id, snapshot, requestType, query) String 
Inherited from DS.BuildURLMixin addon/-private/adapters/build-url-mixin.js:33 
Builds a URL for a given type and optional ID. 

By default, it pluralizes the type's name (for example, 'post' becomes 'posts' and 'person' becomes 'people'). To override the pluralization see pathForType. 

If an ID is specified, it adds the ID to the path generated for the type, separated by a /. 

When called by RESTAdapter.findMany() the id and snapshot parameters will be arrays of ids and snapshots. 

Parameters: 
modelName String 
id (String|Array|Object) 
single id or array of ids or query 
snapshot (DS.Snapshot|Array) 
single snapshot or array of snapshots 
requestType String 
query Object 
object of query parameters to send for query requests. 
Returns: 
String 
url 
Смежные вопросы