knockout - HTML href

nanonerd picture nanonerd · May 3, 2013 · Viewed 29.9k times · Source

I have a foreach loop that goes through an array (filesObservableArray). The array has a key/value with the key: URLPath. When I bind the array within the HTML, I would like to set the 'href=' value with the URLPath.

I know this part is a fail, but conceptually, can you see what I'm trying to do?

href="< span data-bind='text: URLPath'>"

Or maybe I can use a 'databind="click: someCode(url)"' and within the someCode function, open the link? The url maps to either a document file (e.g., .doc) or an image file.

Tips appreciated. Thanks!

<tbody data-bind="foreach: $root.filesObservableArray">
                    <tr id="tradeRow">
                        <td><a href="<span data-bind='text: URLPath'></span>">Open file</a></td>
                    </tr>
                </tbody>

Answer

nemesv picture nemesv · May 3, 2013

I am not sure what do you want to achive with the span in the href but with the attr binding you can set just fine the href (or any other) attribute:

<tbody data-bind="foreach: $root.filesObservableArray">
   <tr id="tradeRow">
       <td><a data-bind="attr: { href: URLPath }">Open file</a></td>
   </tr>
</tbody>