【发布时间】:2016-04-27 11:14:39
【问题描述】:
我正在使用 knockout 的 foreach 循环,它从数组中获取值并将其显示在 href 标记中。
这一切都很好,但是一旦我使用了 javascript 的onclick(我需要这个 onclick,因为我正在使用 InAppBrowser 手机插件)并使用其中的变量,它就不起作用了。请参阅此处的示例:
<div data-bind="foreach: consumerData" style="margin-bottom:100px;">
<table>
<tr>
<td colspan="2">
<p style="font-size:larger; margin-bottom:5px;">
<a style="text-decoration:none;"
data-bind="attr: { href: 'http://domain:8080/dsservlet/'+$data[0]+'.png?key=DK188961' },
text: $data[1]" target="_blank"
onclick="window.open('http://domain:8080/dsservlet/'+$data[0]+'.png?key=DK188961',
'_blank', 'location=yes'); return false;"></a></p>
</td></tr>
</table>
</div>
如您所见,$data[0] 在 data-bind 属性中运行良好。但是在 onclick 内使用相同的$data[0] 不起作用,它仍在 foreach 循环内。我假设我需要声明一个 javascript 变量才能使其工作,但是如何在 foreach 循环中声明它?我需要在 foreach 循环中声明它,因为数组的值不同。
在此处查看 javscript 部分:
var ViewModel = function() {
this.consumerData = ko.observableArray([[174302,"BUSINESS - APPLICATION TO CONDUCT A BUSINESS FROM HOME.pdf",".pdf","DK89639"],[120183,"Glovent-Brochure.pdf",".pdf","DK472894"]]);
}
ko.applyBindings(new ViewModel());
【问题讨论】:
标签: arrays knockout.js foreach onclick