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个事件判断是否匹配,然后设置属性。
我有 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个事件判断是否匹配,然后设置属性。