Why not an inline handler
An onclick attribute works, but it has no idea what data the element belongs to. Inside a
repeat that is the whole problem: every row shares the same markup, so
an inline handler needs an id or an index threaded through the template to tell rows apart.
The template item passed to a b-on-* handler already carries the item's context. The handler
reads the row it fired on without the markup having to say which row that is.
ctrl.selectRow = (templateItem) =>
{
let row = templateItem.context; // the repeat item this element belongs to
row.selected = true;
};