这里的一个简单示例可能是事件列表,例如日历,或者只是看起来像这样的普通旧列表
Monday
- event1
- event2
Tuesday
- event3
我不确定如何在应用程序中实现这一点。在我看来,有两种选择:
1.服务器端
在服务器上假装实际上有一些Day
封装事件的模型。这意味着你会做这样的事情
def index
events = Event.recent.group_by { |e| e.starts_at.to_date }.to_a
days = data.map.with_index do |pair, index|
# ember data seems to break without the ID here
{ id: index, date: pair[0], events: pair[1] }
end
render json: { days: days }
end
然后在客户身上假装你实际上有一个Day
模型hasMany
Events
。
然后模板看起来像
{{#each day in controller}}
<h2>{{day.date}}</h2>
{{#each event in day.events}}
<p>{{event.name}}</p>
{{/each}}
{{/each}}
2.客户端
我不确定如何正确实现这一点,但这基本上意味着您只需返回一个事件列表,并将它们分组到客户端。然后服务器看起来就像
def index
render json: Event.recent
end
但是客户端不会像第一个示例那样在模板中进行简单的迭代。