我们正在使用开源FormBuilder客户端组件并对其进行扩展以满足我们的要求。 Formbuilder是使用带有嵌套数据的Backbone Deep model
编写的,对于绑定,它使用rivetsjs
。
这里的Formbuilder在github:https://github.com/dobtco/formbuilder和backbone deep model
在github:https://github.com/powmedia/backbone-deep-model
现在我们在视图中使用嵌套元素,它们嵌套在结构中,如下面的JSON:
{
"fields": [{
"label": "Untitled",
"field_type": "checkboxes",
"required": true,
"field_options": {
"options": [{
"label": "test",
"checked": false
}, {
"label": "",
"checked": false
}]
},
"rules_data": {
"rules": [{
"ruleId": "rule6",
"criterias": [{
"condition": "if",
"responseTo": "",
"userOption": ""
}],
"branchTo": [{
"branch": "test"
}, {
"branch": ""
}, {
"branch": ""
}]
}]
},
"cid": "c2"
}]
}
这里有一系列规则,然后规则在每个索引都有更多的数据,其中一个是branchTo,现在branchTo也是一个索引数组。在rivetsjs中,我们可以使用rivetsjs .
或:
运算符绑定一些东西。对于属性,我们可以使用:
但我们无法访问嵌套索引数组中的元素。那么在使用nexted索引元素时是否可以访问和绑定铆钉中的元素?如果是,那我们该怎么做呢?还是有更好,更简单的方法来实现同样的目标?我是骨干以及铆钉的初学者所以我不确定这是否正确,所以请指导。
提前感谢。
答案 0 :(得分:2)
如果我正确理解rivetsjs,:
只是一个适配器的示例,如果您愿意,可以将^
作为适配器分隔符。这意味着您还可以拥有和嵌套适配器。让:
搜索第一级,然后^
搜索1级更深。
您还可以构建更具适应性的适配器,以便更深入地获取对象。以下stackoverflow答案中的示例。您还可以在此处查看其他一些获取更深层嵌套对象的方法:
How to bind deeper than one level with rivets.js
希望这能解决您的问题