我正在使用淘汰賽的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