【问题标题】:Knockout foreach accessing 2D json array敲除 foreach 访问 2D json 数组
【发布时间】:2016-04-18 11:02:07
【问题描述】:

希望有人能帮我解决这个问题:

我正在使用淘汰赛并拥有以下 json 数组:

[[174302,"BUSINESS - 在家开展业务的申请.pdf",".pdf","DK89639"],[120183,"Glovent-Brochure.pdf",".pdf","DK472894" ]]

在我的“consumerData”变量中。

如您所见,有 2 个数组,每个数组包含 4 个元素。

这是我尝试访问它的方式:

<div data-bind="foreach: consumerData" style="margin-bottom:100px;">                 
<table>
<tr>
<td colspan="2">
<p style="font-size:larger; margin-bottom:5px;"><a data-bind="attr: { href: 'http://someaddress/address/'+consumerData[0]+''+consumerData[2]+'?key='+consumerData[3]+'' }"><div data-bind="text: consumerData[1]"></div></a></p>
</td></tr>
</table> 
</div>

所以这是循环两次,这是正确的,但我如何访问每个数组中的数据?

请帮忙!

谢谢!

问候 弗朗索瓦

【问题讨论】:

  • 除非您喜欢不速之客,否则我会从您的代码中删除该 IP 地址
  • 谢谢!
  • 我也更新了fiddle,没想到放在一起
  • 是的,我想问,谢谢!

标签: arrays json knockout.js foreach


【解决方案1】:

您可以通过访问代表当前上下文的$data 对象(而不是再次使用consumerData)来访问循环内未命名的数据

看这个小提琴: https://jsfiddle.net/5c6y46bo/

此外,您无需在链接中放置 div 来保存当前对象的文本,只需将 text 绑定放在 &lt;a&gt; 元素的绑定中,并与 attr 绑定一起放置。

【讨论】:

  • 谢谢!!你真是太棒了:)
  • 嗨 dfperry,我希望你能在这方面提供帮助。我正在尝试将 $data[0] 绑定在 foreach 循环内的 onclick 内。看起来它不起作用(我为此使用了 InAppBrowser)。例如像这样:domain:8080/dsservlet/'+$data[0]+'.png?key=DK188961' }, text: $data[1]" target="_blank" onclick="window.open('domain:8080/dsservlet/'+$data[0]+'.png?key=DK188961', '_blank', 'location=是'); 返回 false;">
  • 如果要绑定到单个字段,它也必须是可观察的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 2012-10-05
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
相关资源
最近更新 更多