Nathan Fowler
Nathan Fowler

Reputation: 581

knockout attribute data binding not working

When I just data-bind one of the attributes, they work. But when I combine them with attr, they don't work. Knockout 3.4.2

<table  data-bind="foreach: listPlaces">
  <tr>
    <td>
       <button data-bind="attr: {click: $parent.onClick, text: marker.title}"></button>
    </td>
  </tr>
</table>

marker.title just shows a string, and onClick opens an info window in google maps.

Upvotes: 0

Views: 340

Answers (1)

MKougiouris
MKougiouris

Reputation: 2861

Your binds should be made like so

<table  data-bind="foreach: listPlaces">
  <tr>
    <td>
       <button data-bind="click: $parent.onClick, text: marker.title"></button>
    </td>
  </tr>
</table>

First of all the text binding should NOT be withing the attr tags, as it is an internal bind used by knockout to update the content of your element and it is expected to work like that.

Now for the click handler, the above is the correct way to attach a click handler, maybe you could get away with an attr: { onClick : 'MyFunc'} but i both doubt it and dont recomend it!

Upvotes: 3

Related Questions