Except, this tooltip contains the password rules, and I want to use it in several places on my app. I don't want to create another custom attribute, I just want to bind the title to a value from my viewmodel.
So I write:
<input type="password" value.bind="password" bootstrap-tooltip data-container="body" data-html="true" data-placement="bottom" data-toggle="tooltip" title.bind="passwordRules">
and, of course, it just works. That's what I love about the syntax of Aurelia. They don't have to think of every use-case, they built the right abstraction in the first place.
FYI, if you get here looking for how to do the custom attribute, here's that code (thanks to Jeremy Danyow):
import {inject} from 'aurelia-framework'; import $ from 'jquery'; import 'bootstrap'; @inject(Element) export class BootstrapTooltipCustomAttribute { constructor(element) { this.element = element; } bind() { $(this.element).tooltip(); } unbind() { ${this.element).tooltip('destroy'); } }