backbone.js复杂模型
backbone.js complex model
我正在使用backbone.js作为MVC框架构建一个web应用程序。我正在努力设计我的模型。我有一个父对象/主对象,但它在自然界中非常复杂/嵌套,即超过50个属性和一些正在进行的嵌套。我正在努力解决的问题是:
我有这样的东西:
{section1:{
key1:"value1",
key1:"value2"},
section2:{
key1:"value1",
key1:"value2"}
}
我应该像一样把物体压平吗
{section1_key1:"value1",
section1_key2:"value2",
section2_key1:"value1",
section2_key2:"value2"
}
或者我应该:
- 使用主干嵌套插件并按原样传入大型嵌套JSON对象
- 或者为每个节创建单独的模型,并以某种方式嵌套在父节中模型
- 或者简单地为子对象创建模型,而不用担心嵌套并添加某种类型的引用
建议不胜感激。
我现在也在努力。
我倾向于选择2。
我将每个嵌套部分构建到单独的模型中,并在Python(或任何ORM)中创建一个类似于SQLObject的接口
所以给出一个简单的博客文章想法:
var Tag = Backbone.Model.extend({
defaults: {
name: ''
},
validate: function(atts){
if(!atts.name || atts.name.length < 2){
return "You must provide a name that's longer than 2 characters";
}
}
});
var TagList = Backbone.Collection.extend({
model: Tag
})
var Entry = Backbone.Model.extend({
defaults: {
author: "Todd",
pub_date: new Date(),
content: "",
title: "",
tags: new TagList()
},
add_tag: function(tag){
var tag_collection = this.get('tags');
tag_collection.add({name: tag});
this.set({tags: tag_collection});
},
remove_tag: function(tag){
tag.destroy();
},
tags: function(){
return this.get('tags').models;
}
});
另一种想法是让initialize
处理取消嵌套、创建和向集合添加项,然后将这些项存储为该模型上的属性。
相关文章:
- 在汇编中的yaml前端创建复杂的数据模型
- 如何将复杂的模型从客户端传递到服务器
- 用Javascript构建复杂的计算模型
- 我们如何使用Jquery和ASP.NET MVC 4复杂模型数据设置HTML元素的值
- Angular JS中的复杂模型绑定
- 在模型更改时刷新 Dojo MVC 组不适用于复杂对象
- 如何进行复杂模型剔除的数据绑定
- 在主干模型/视图上处理更复杂的验证逻辑(必填字段等)的最佳方式
- backbone.js复杂模型
- 将一个复杂的模型绑定到MVC中的下拉列表
- Angular正在构建一个复杂的领域模型
- 如何在提交表单post方法之前将复杂数据类型附加到视图模型
- knockoutjs:计算级联数组(复杂视图模型)中的可观察性和this指针
- 通过Angular UI模态更新复杂模型时遇到麻烦
- BackboneJS迭代复杂模型
- 使用amperstand.js视图[subviews]渲染复杂的模型[states]
- Backbone.js:组合多个模型的复杂视图
- Java Jackson:反序列化复杂多态对象模型:JsonMappingException:意外令牌(START_OB
- 创建具有嵌套对象的复杂表单的JSON表示,并更新骨干模型
- MVC手动序列化复杂的对象或模型绑定