我们正在使用一个开放源代码FormBuilder客户端组件,并对其进行扩展以满足我们的需求。Formbuilder是使用Backbone Deep model
编写的,其中包含嵌套的数据,对于绑定,它使用Rivets.js。
下面是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也是一个索引数组。在Rivets.js中,我们可以使用Rivets.js .
或:
操作符绑定某些内容。对于属性,我们可以使用:
,但我们无法访问嵌套索引数组中的元素。
那么,是否有可能在使用nexted索引元素的同时访问和绑定 rivets 中的元素?如果有,那么我们如何才能做到这一点?或者有更好更简单的方法来完成同样的目标吗?我是初学者在 Backbone 以及 rivets ,我不确定这是否是正确的方式。
1条答案
按热度按时间3ks5zfa01#
如果我对rivetsjs的理解正确的话,
:
只是一个适配器的例子,如果你愿意的话,你可以用^
作为一个适配器分隔符。这意味着你也可以同时使用和嵌套适配器。让:
搜索第一层,然后让^
搜索更深的一层。你也可以构建一个适应性更强的适配器,让对象更深。下面是stackoverflow答案中的例子。你也可以在这里看到一些其他的方法来获取更深的嵌套对象:
How to bind deeper than one level with rivets.js
希望这能解决你的问题