如何使用Ember Data 1.0 beta命中非REST端点

时间:2013-10-15 04:44:18

标签: ember.js ember-data

除了我在某些资源上有一个/search端点之外,我的API基本上是休息的。我正在使用DS.ActiveModelAdapterDS.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'),所以一些强调的属性不会显示出来。

实现此目的的正确方法是什么?

1 个答案:

答案 0 :(得分: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,...}
]