最近要做一个农场项目,涉及到很多js数据管理的需求,这里也做下总结,不断的总结,再修正内容,也是快速进步的方法。
数据管理几个方面考虑:
* 设置(更新)字段值
* 检索,根据id, index, 属性{name:'han'}
*
实际需求:
数据结构 seeds:{ white: 30, blue: 10, gold: 2 } plants: [{ id: '333' seedType: 'white', matureInterval: '3000', fertilize: '2000' }, { }];
问题1:如果一个plant[id] 为333的数据要拿出来,我怎么能快速从dataset.plants中取出这个数据对象。
问题2:监听数据改变,传入什么参数?
bind('change', function(model){})
直接将这个model实例传入进去。
callback中this指向这个实例,一般监听也都是根据model更改视图(View)或者操作model。
对于问题1,参考下Backbone.Collection中。
Backbone.Collection 中有get(id) at(index)检索方法。
如果要get(id)获取,有个_byId: {
id1: model1,
id2: model2
}; 这样一个检索表。
Collection中有.models = [model1,model2, model3] 这样的存贮数据数组。
at方法就直接从 .models[index] 来获取
把它都变成 dataset.plants = {
'333': plantObj,
'444': plantObj
};