Javascript 对于带主干的深层数据结构有什么建议吗?
我的脊梁骨有点头痛。我有一个指定记录的集合,其中有子记录,例如:外科医生有计划的手术,手术有设备,一些设备有耗材需求(气体、液体等)。如果我有一个主干集合外科医生,那么每个外科医生都有一个模型——但他的程序、设备和消耗品在从JSON解包后都将是普通的Javascript数组和对象 我想我可以在SurgeOnCollection中使用parse()生成新的ProcedureRecolutions,然后生成新的EquipmentCollections,但过了一段时间,这就变成了一个毛球。为了让它在服务器端变得合理,有一个单一的联系点,需要一个外科医生和他的东西作为一个帖子——因此自动在ConsumableModel上传播“set”以触发层次结构下的“save”,也使得整个层次结构方法变得模糊Javascript 对于带主干的深层数据结构有什么建议吗?,javascript,backbone.js,Javascript,Backbone.js,我的脊梁骨有点头痛。我有一个指定记录的集合,其中有子记录,例如:外科医生有计划的手术,手术有设备,一些设备有耗材需求(气体、液体等)。如果我有一个主干集合外科医生,那么每个外科医生都有一个模型——但他的程序、设备和消耗品在从JSON解包后都将是普通的Javascript数组和对象 我想我可以在SurgeOnCollection中使用parse()生成新的ProcedureRecolutions,然后生成新的EquipmentCollections,但过了一段时间,这就变成了一个毛球。为了让它在服
还有其他人遇到过这样的问题吗?您是如何解决的?我会将不同的外科医生、手术、设备等分离出来,作为web服务中的不同资源。如果只需要更新特定程序的设备,则可以更新该程序
另外,如果您并不总是需要所有信息,我也会根据需要延迟加载数据,但在需要的地方发送完全填充的对象以提高性能。这对您的情况很有帮助:
指定关系1:1、1:n、n:n,它将相应地解析JSON。它还创建一个全局存储来跟踪所有记录。因此,我解决此问题的一种方法是执行以下操作:
convertToModel: function(dataType, modelType) {
if (this.get(dataType)) {
var map = { };
map[dataType] = new modelType(this.get(dataType));
this.set(map);
}
}
if (model.onUpdate) {
model.onUpdate();
}
onUpdate: function() {
this.convertToModel('nameOfAttribute1', SomeCustomModel1);
this.convertToModel('nameOfAttribute2', SomeCustomModel2);
}
这是另一个可能的解决方案。主干关系几乎完全是我梦想的答案。我很早就走上了这条路,但这是经过深思熟虑的,更优雅。我只想指出,您的建议虽然值得称赞,但却违背了RESTful界面的目的,在RESTful界面中,粗略的文档(在本例中是过程)在服务器和客户端之间来回传递。