我正在使用淘汰赛的foreach
循环获取数组中的值并将其显示在href标记中。使用window.open与淘汰赛绑定
这一切都很好,但一旦我使用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]
工作正常,数据绑定属性中。但在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());
非常感谢这个!它几乎工作。在浏览器中它可以工作,但在移动应用程序中,它并不是因为InAppBrowser插件期望在a属性中使用onclick。有没有解决这个问题的方法? – user2319262
如果你*必须使用'onclick',那么你可以使用'attr'绑定来设置它。看最后的例子。 – Jeroen