我们正在使用开源 FormBuilder 客户端组件并对其进行扩展以满足我们的要求。 Formbuilder 是使用带有嵌套数据的 Backbone Deep 模型
编写的,并且使用 Rivets.js 进行绑定(bind)。
这里的 Formbuilder 位于 GitHub 上:https://github.com/dobtco/formbuilder这里是 GitHub 上的主干深度模型
:https://github.com/powmedia/backbone-deep-model
现在我们在 View 中使用嵌套元素,这些元素嵌套在结构中,如以下 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 .
或 :
运算符绑定(bind)某些内容。对于属性,我们可以使用 :
但我们无法访问嵌套索引数组内的元素。
那么在使用 nexted 索引元素时是否可以访问和绑定(bind) Rivets 中的元素?如果是的话,我们该怎么做呢?或者有更好、更简单的方法来实现相同的目标吗?我是 Backbone 和 Rivets 的初学者,我不确定这是否是正确的方法。
最佳答案
如果我正确理解 rivetsjs,:
只是适配器的一个示例,如果您愿意,您可以将 ^
作为适配器分隔符。这意味着您还可以同时拥有 和 Nest 适配器。让 :
搜索第一层,然后使用 ^
更深一层搜索。
您还可以构建一个更具适应性的适配器,可以使对象更深。以下 stackoverflow 答案中的示例。您还可以在此处查看一些获得更深嵌套对象的其他方法:
How to bind deeper than one level with rivets.js
希望这能解决您的问题
关于javascript - 使用 Rivets.js 和 Backbone 深度模型绑定(bind)和访问嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22712141/