我是Backbone的新手,需要帮助才能使用Backbone从嵌套的Json Structure中获取和设置模型
我有一个简单的模型和集合
型号:
var PmaslDataModel = Backbone.Model.extend({ });
收集:
app.PmaslDataCollection = Backbone.Collection.extend({
url APPLICATION_URL+'aslview/getformatedDataRows',
model : PmaslDataModel
});
初始化集合
var pmaslDataCollection = new app.PmaslDataCollection();
获取上述集合将返回以下Json格式的数据
{
"id" : "1",
"rowid" : "1",
"group" : "10__",
"datarows": [
{
"id": "sspvk_code",
"default_display": "1",
"order": "1",
},
{
"id": "sspvk_code2",
"default_display": "0",
"order": "0",
},
{
"id": "sspvk_code3",
"default_display": "1",
"order": "0",
}
]
},
{
"id" : "2",
"rowid" : "2",
"group" : "11__",
"datarows": [
{
"id": "sspvk_code",
"default_display": "1",
"order": "1",
},
{
"id": "sspvk_code2",
"default_display": "0",
"order": "0",
},
{
"id": "sspvk_code3",
"default_display": "1",
"order": "0",
}
]
}
我必须使用上面的结构来填充我们有行ID的表中的值,并且行中的列值出现在datarows属性中
我有2个问题
答案 0 :(得分:0)
1)最初使用 id default_display 设置为 0 到所有数据行 >" sspvk_code " (这就是你想要的吗?)你可以这样使用 parse 方法,我会说:
app.PmaslDataCollection = Backbone.Collection.extend({
url : APPLICATION_URL+'aslview/getformatedDataRows',
model : PmaslDataModel,
parse : function (response) {
// ititerate through entire collection
_.each(response, function (row) {
// find datarow with sspvk_code id and set default_display to 0
_.each(row.datarows, function (datarow) {
if (datarow.id === "sspvk_code") {
datarow.default_display = 0;
}
})
})
return response;
}
});
2)你的意思是"获取数据行"?您的JSON看起来已经在集合中拥有了数据行。
答案 1 :(得分:0)
2.如果我有一个特定的行ID,我该如何获取数据行 行,将其传递给下划线模板并填充模板(即 是,在模板中,我需要使用model.get('attributename 值')?
获取集合后,json数据将被设置为集合中的模型。因此,从集合中,您可以使用Collection's findWhere方法选择具有指定行ID的模型。
在您的情况下,在您的收藏中,
this.findWhere({rowId:2});
1.如何为id = sspvk_code的所有数据行设置“default_display”值为0?
我想这应该是服务器负责设置默认值而不是在此设置它。