首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails和knockout.js绑定嵌套元素,而不使用fields_for中的foreach

Rails和knockout.js绑定嵌套元素,而不使用fields_for中的foreach
EN

Stack Overflow用户
提问于 2013-11-06 18:30:57
回答 1查看 239关注 0票数 1

我在knockout.js和ko.mapping中使用rails 3.2。我能够从json数据映射并从中创建viewModel,在js控制台中,我可以很好地查看数据树。在我看来,我使用form_for和字段来呈现我的视图。我无法理解的是如何在fields_for内部的输入上进行数据绑定,而不必使用KO或with。我儿子的结构是这样的。

代码语言:javascript
复制
{
  "ss_sections": [
    {
      "ss_lines": [
        {
          "ss_line_cells": [
            {
              "cell_name": "credits",
              "cell_value": "124795.00",
            },
          ]
        }
      ]
    }
  ]
}

如何在输入中写出数据绑定属性,直接指向cell_value,而不使用knockout.js循环,因为knockout.js已经在循环元素中了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 19:28:03

数据绑定属性仍然需要从数据中导航由ko映射生成的对象层次结构,因此我认为,如果不生成类似于服务器上的以下混乱的html,您就无法逃脱( http://jsfiddle.net/NAUeV/1/):

代码语言:javascript
复制
<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在客户机上生成呢?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19819924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档