我在knockout.js和ko.mapping中使用rails 3.2。我能够从json数据映射并从中创建viewModel,在js控制台中,我可以很好地查看数据树。在我看来,我使用form_for和字段来呈现我的视图。我无法理解的是如何在fields_for内部的输入上进行数据绑定,而不必使用KO或with。我儿子的结构是这样的。
{
"ss_sections": [
{
"ss_lines": [
{
"ss_line_cells": [
{
"cell_name": "credits",
"cell_value": "124795.00",
},
]
}
]
}
]
}如何在输入中写出数据绑定属性,直接指向cell_value,而不使用knockout.js循环,因为knockout.js已经在循环元素中了。
发布于 2013-11-06 19:28:03
数据绑定属性仍然需要从数据中导航由ko映射生成的对象层次结构,因此我认为,如果不生成类似于服务器上的以下混乱的html,您就无法逃脱( http://jsfiddle.net/NAUeV/1/):
<table id="ss_section0">
<tr id="ss_line0">
<td id="cell0">
<span data-bind="text:ss_sections()[0].ss_lines()[0].ss_line_cells()[0].cell_name"></span>
</td>
<td id="cell1">
<span data-bind="text:ss_sections()[0].ss_lines()[0].ss_line_cells()[1].cell_name"></span>
</td>
</tr>
<tr id="ss_line1">
<td id="cell0">
<span data-bind="text:ss_sections()[0].ss_lines()[1].ss_line_cells()[0].cell_name"></span>
</td>
<td id="cell1">
<span data-bind="text:ss_sections()[0].ss_lines()[1].ss_line_cells()[1].cell_name"></span>
</td>
</tr>
</table>不过,它看起来很统一,也很容易生成。
您确定需要在服务器上生成html吗?为什么不直接将json发送到客户端并使用标准的foreach/with在客户机上生成呢?
https://stackoverflow.com/questions/19819924
复制相似问题