0

除了我/search在某些资源上有一个端点外,我的 API 大多是安静的。我正在使用DS.ActiveModelAdapterandDS.ActiveModelSerializer一切都很好。

我当前的搜索实现有点像这样:

makeAPICall: ->
  @set('loading', true)

  states = @get('selectedStates')
  statesString = states.join(',')
  query = @get('searchParam')
  url = "/api/v1/organizations/search?#{statesString}&query=#{query}"

  $.get(url).then (data) =>
    @get('store').pushPayload(data)
    # TODO this needs to go through the adapter.
    orgs = data.organizations.map (org) =>
      @store.find('organization', org.id)
    @set('organizations', orgs)
    @set('loading', false)

问题是我不知道在这种情况下如何进行适配器中发生的所有规范化/骆驼化。因为在这种情况下模板依赖于@get('organizations'),所以一些带下划线的属性不会显示出来。

实现这一点的正确方法是什么?

4

1 回答 1

0

pushPayload 应该进行规范化/骆驼化,但需要从文档中知道您正在推送的类型......但在 v1.0.0-beta.3 版本中

var pushData = {
  posts: [
   {id: 1, post_title: "Great post", comment_ids: [2]}
  ],
  comments: [
    {id: 2, comment_body: "Insightful comment"}
  ]
}

store.pushPayload('post', pushData); 

在你的情况下,电话应该是

@get('store').pushPayload('organization', data)

和数据 json 组织数组

organizations:[
    {id:1,...},
    {id:2,...},
    {id:3,...}
]
于 2013-10-15T08:58:04.757 回答