我将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中循环使用knockout绑定并显示这样的数据。
<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" />
如何使用敲除循环实现此目的。请告诉我。
答案 0 :(得分:3)
实现这一目标的最佳选择是使用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'代替。
希望这有助于指明你正确的方向。