Flux - 谁应该更改集合中模型中的数据?

Flux - who should change data in models which are in collection?

我有 Backbone 个模型集合和此集合的列表视图。

<ul>
  <li><input type="checkbox"/> <span>Title</span></li>
  ...
</ul>

当用户点击复选框时我执行这段代码

Actions.save({id: model.cid, data: {select: true}})

此操作触发调度程序中的事件 save-model,这里是问题 - 谁应处理此事件?

我有两个选择:

1) 合集

Dispatcher.on('save-model', function (event) {
  var model = collection.get(event.cid);
  if (model) {
    model.set(event.data);
  }
});

2) 集合中的每个模型都应该监听 dispathcer

Dispatcher.on('save-model', function (event) {
  if (model.cid === event.cid) {
    model.set(event.data);
  }
});

我会选择选项 #1 - collection。我的观点是这样事件只需要处理一次。如果在model中绑定,比如你的collection有1k个model,会触发1k个事件判断是否匹配,然后设置属性。