【问题标题】:How to get another for loop inside the for loop in knockout如何在淘汰赛中的for循环内获得另一个for循环
【发布时间】:2014-06-24 06:15:56
【问题描述】:

我在淘汰赛中获取 json 数据作为输出和绑定。

Json 数据

{
"frequency": [
    {
        "freqid": "2",
        "freqname": "Monthly",
        "date": [
            "1",
            "7",
            "10",
            "14",
            "20",
            "21",
            "28"
        ],

        "ny": "6.0",
        "ty": "0"
    },
    {
        "freqid": "3",
        "freqname": "Quarterly",
        "date": [
            "1",
            "7",
            "10",
            "14",
            "20",
            "21",
            "28"
        ],

        "ny": "4.0",
        "ty": "0"
    }
]

}

这是有效的 json,我正在使用敲除绑定在我的 html 中循环频率并显示这样的数据。

<div data-bind="foreach: FreqList">
                <input type="hidden"  data-bind="attr: { id: 'hid_fr_' + freqid(), name: 'hid_freq_' + freqid()  } " >
</div>   

在这里它工作正常。问题是我想要有一个在频率循环中的日期循环,并且想要通过# 分离来获得日期数据,就像第一个循环值一样。

<input id="hid_fr_2" name="hid_fr_2" value="1#7#10#14#20#21#28" />

如何使用淘汰赛循环来实现这一点。请告诉我。

【问题讨论】:

    标签: knockout.js knockout-2.0


    【解决方案1】:

    实现这一点的最佳选择是拥有一个 javascript 函数来填充您输入的 value 属性。即

    <div data-bind="foreach: FreqList">
        <input type="hidden" data-bind="attr: { id: 'hid_fr_' + freqid(), name:'hid_freq_' + freqid(), value: createDateValue(date) }">
    </div>
    

    然后在 Javascript 中,您将需要以下内容:

    function createDateValue(dates) {
       return dates.join("#");
    }
    

    另请注意,在您的代码中,“freqid()”将不起作用,因为该值不是可观察的,而是应该由“freqid”代替。

    希望这有助于为您指明正确的方向。

    【讨论】:

      猜你喜欢
      • 2019-10-03
      • 2013-10-07
      • 2014-03-21
      • 2021-10-28
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多