Setting the id attribute with knockoutjs including a prefix

w00 picture w00 · Sep 20, 2012 · Viewed 60k times · Source

I'm using KnockoutJS to iterate over an object, like this:

Now this all works. But the problem i have is that it sets the id of the button to just a number. So it looks like this:

<button id="1">Button 1</button>
<button id="3">Button 2</button>
<button id="8">Button 3</button>

So i tried to put a prefix in front of the the 'Id' property, like so:

<div data-bind="foreach:Items">
    <button data-bind="text: Name, attr: {'id': 'myprefix_' + Id}"></button>
</div>

But that doesn't seem to be working. My id gets filled with some Knockout observable function when i do it like that...

So my question is, how can i add a prefix when i specify the id attribute of a field?

Answer

Cordell Lawrence picture Cordell Lawrence · Dec 19, 2013

Actually used this today - to unwrap the observable I had to do:

<button data-bind="attr: { id: 'prefix_' + $index() }"> Send </button>

Hope this helps.