我们正在使用一个开源的FormBuilder客户端组件,并对其进行扩展以满足我们的需求。Formbuilder是使用带有嵌套数据的Backbone Deep model编写的,对于绑定,它使用Rivets.js。
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也是一个索引数组。在Rivets.js中,我们可以使用Rivets.js .或:运算符进行绑定。对于属性,我们可以使用:,但是我们不能访问嵌套索引数组中的元素。
那么,在使用邻接的索引元素的同时,是否可以访问和绑定铆钉中的元素?如果是的话,我们怎样做呢?或者有没有更好更简单的方法来实现同样的目标?我是一个新手,我的骨干和铆钉,我不确定这是不是正确的方式。
发布于 2014-04-10 16:53:52
如果我对rivetsjs的理解正确的话,:只是一个适配器的例子,如果你愿意,你可以使用^作为适配器的分隔符。这意味着您还可以同时使用和嵌套适配器。让:搜索第一层,然后让^搜索更深一层。
您还可以构建一个适应性更强的适配器,它可以使对象变得更深。下面的堆栈溢出答案中的示例。您还可以在此处查看其他一些获得更深嵌套对象的方法:
How to bind deeper than one level with rivets.js
希望这能解决你的问题
https://stackoverflow.com/questions/22712141
复制相似问题