除了我在某些资源上有一个/search
端点之外,我的API基本上是休息的。我正在使用DS.ActiveModelAdapter
和DS.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')
,所以一些强调的属性不会显示出来。
实现此目的的正确方法是什么?
答案 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,...}
]