【发布时间】:2015-12-07 23:59:03
【问题描述】:
我的问题是我刚开始使用 Backbone.js,并且无法解决一个复杂的问题。我想保存一个具有无限字段的表单,并且某些字段还需要具有无限选项。我只是担心我可能从错误的一端开始使用 JSON 响应,而不是先构建模型/集合。这是我尝试实现的简短伪代码。
id:
parent: <blockid>
fields: array(
id:
title:
helpertext
options: array(
id:
type:
value:
)
)
目前我正在处理来自服务器的伪造 JSON 响应,这是我从头开始构建的,现在我想在客户端将其划分为模型和集合。
//Fake a server response
var JSONresponse = {
"formid":"1",
"fields":[
{
"fieldid":"1",
"title":"Empty title",
"helper":"Helper text",
"type":"radio",
"options":[
{
"optionid":"1",
"value":"Empty option.."
},
{
"optionid":"2",
"value":"Empty option.."
}
]
},
{
// fieldid2
}
]
};
想法是添加我认为合适的字段,然后如果字段类型是 radio/checkbox/ul/ol,则字段中还必须有一个“选项”数组。
到目前为止我的工作:
var app = {};
app.Models = {};
app.Collections = {};
app.View = {};
app.Models.Option = Backbone.Model.extend({
});
app.Collections.Options = Backbone.Collection.extend({
model: app.Models.Option
});
app.Models.Field = Backbone.Model.extend({
options: new app.Collections.Options()
});
app.Collections.Fields = Backbone.Collection.extend({
model: app.Models.Field
});
app.Models.Form = Backbone.Model.extend({
formid : "1",
fields: new app.Collections.Fields(),
initialize: function() {
}
});
如何将我的 JSON 响应拆分为所有这些模型和集合? (也许我应该重新评估我的方法,并改用 form.fieldList 和 form.optionList[fieldListId] 之类的东西。如果是这样,那会是什么样子?)
编辑:经过多次修复,这里有一点jsfiddle,但我仍然不知道如何使内部选项列表工作。
【问题讨论】:
-
感谢您的回复。但是,我并没有从那个链接中得到我想要的所有东西,也没有从你的解释中得到。我确实采用了单一模型 JSON 的想法,所以我觉得我离解决方案越来越近了。不过,我可能以错误的方式开始,我试图重现一个 JSON。最好从头开始创造你想要的东西,而不是从房子的屋顶开始。 :)
标签: javascript json backbone.js collections underscore.js