1

这里的一个简单示例可能是事件列表,例如日历,或者只是看起来像这样的普通旧列表

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

但是客户端不会像第一个示例那样在模板中进行简单的迭代。

4

1 回答 1

0

我今天开始和 Ember 一起玩,只有一两个小时,所以要加一点盐。

我有同样的问题,并找到了一个group-by计算属性示例)。现在阅读计算属性。;)

于 2014-05-20T20:07:03.677 回答