gpt4 book ai didi

javascript - Rails 和 knockout.js 绑定(bind)嵌套元素而不在 fields_for 中使用 foreach

转载 作者:行者123 更新时间:2023-11-30 17:47:36 25 4
gpt4 key购买 nike

我正在使用带有 knockout.js 和 ko.mapping 的 Rails 3.2。我能够从我的 json 数据映射并从中创建我的 viewModel,在 js 控制台中我可以很好地查看数据树。在我看来,我正在使用带有字段的 form_for 来呈现我的 View 。我想不通的是如何在 fields_for 内对我的输入进行数据绑定(bind),而不必使用 KO foreach 或 with。我的 json 结构如下所示。

{
"ss_sections": [
{
"ss_lines": [
{
"ss_line_cells": [
{
"cell_name": "credits",
"cell_value": "124795.00",
},
]
}
]
}
]
}

由于我的 fields_for 已经在我的元素中循环,所以我如何在不使用 knockout.js 循环的情况下在我的输入上写出我的数据绑定(bind)属性以直接指向 cell_value?

最佳答案

数据绑定(bind)属性仍然需要导航由 ko 映射从数据生成的对象层次结构,所以我认为如果不在服务器上生成类似以下困惑的 html 之类的东西,你就无法逃脱( fiddle :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 在客户端生成?

关于javascript - Rails 和 knockout.js 绑定(bind)嵌套元素而不在 fields_for 中使用 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com