gpt4 book ai didi

javascript - backbone.js 复杂模型

转载 作者:行者123 更新时间:2023-11-29 20:12:00 25 4
gpt4 key购买 nike

我正在构建一个使用 backbone.js 作为 MVC 框架的网络应用程序。我正在努力设计我的模型。我有一个父/主对象,但它在本质上非常复杂/嵌套,即超过 50 个属性和一些嵌套正在进行。我正在努力的是:<​​/p>

我有这样的东西:

    {section1:{
key1:"value1",
key1:"value2"},
section2:{
key1:"value1",
key1:"value2"}
}

我应该像这样把物体压平吗:

    {section1_key1:"value1",
section1_key2:"value2",
section2_key1:"value1",
section2_key2:"value2"
}

或者我应该:

  1. 使用 Backbone 嵌套插件并按原样传入大型嵌套 JSON 对象?
  2. 或者为每个部分创建单独的模型并以某种方式嵌套在父级中模型。
  3. 或者简单地为子对象创建模型而不用担心嵌套并添加某种类型的引用

感谢建议。

最佳答案

我现在也在苦苦挣扎。

我倾向于选项 2。

我将每个嵌套部分构建到单独的模型中,并在 Python(或任何 ORM)中创建类似于 SQLObject 的接口(interface)

所以给出一个简单的博客帖子想法:

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 处理项目的取消嵌套、创建和添加,然后将其作为该模型的属性存储。

关于javascript - backbone.js 复杂模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com