使用Rivets.js和Backbone深度模型绑定和访问嵌套元素
Binding and accessing nested elements using Rivets.js and Backbone deep model
我们正在使用一个开源的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 .
或:
操作符绑定一些东西。对于属性,我们可以使用:
,但是我们不能访问嵌套索引数组中的元素。
所以有可能访问和绑定铆钉元素,而使用下一个索引元素?如果是,我们该怎么做?或者是否有更好更简单的方法来实现同样的目标?我是骨干和铆钉的初学者,我不确定这是否是正确的方式。
如果我正确理解rivetsjs, :
只是适配器的一个例子,如果你愿意,你可以将^
作为适配器分隔符。这意味着您还可以同时拥有和嵌套适配器。让:
搜索第一层,然后让^
搜索更深一层。
您还可以构建一个更具适应性的适配器,它可以获得更深入的对象。下面的例子是stackoverflow答案。您还可以在这里看到获得更深嵌套对象的其他方法:
如何使用铆钉绑定一个以上的层次。js
希望这能解决你的问题
- 对绑定元素的角度访问
- 使用绑定后访问原型
- D3:使用变量访问绑定数组中的对象
- 聚合物数据绑定:如何访问嵌套模板中的数据
- Knockout-访问数组的长度“;绑定到“;来自模板内部
- 如何使用子上下文可访问的自定义属性扩展模板绑定语法
- AngularJS$作用域包括我的绑定变量,但以后仍然无法访问,为什么
- 访问表单控制AngularJS中的值,而不绑定数据
- 绑定可访问性的点击和输入键
- WinJS-访问包含在绑定listView模板之外的数据
- Angular 1.5:访问控制器内部的绑定控制器属性
- 聚合物数据绑定铁 AJAX 并在控制台中访问获取的 JSON
- 如何将匿名函数绑定到表单的提交,然后访问该表单的内容以进行 AJAX 提交
- 如何访问自定义绑定中的可观察量
- 调用 ES6 方法时的绑定上下文.如何从称为回调的方法中访问对象
- 如何在数据绑定后在 KNOCKOUT js 中使用“with”访问另一个原型对象
- 如何在挖空可观察数组中按索引访问对象?无法处理绑定
- 使用委托绑定 jquery 对象时访问它
- 循环访问 Knockout - 绑定错误中的不同对象的数组
- 如何仅使用JavaScript访问绑定到dom元素的事件,而不使用框架