Gibt es einen Rückruf oder ein Versprechen für Aurelia show.bind?

In meiner Vorlage habe ich ein div, das ich als Tooltip verwenden möchte. Wenn ich ein Modell ausgewählt habe, wird in der QuickInfo angezeigt, und dann setze ich es mit dem Haltegurt an der richtigen Stelle ein. Wenn ich unmittelbar nach dem Festlegen des Modells, mit dem das Element angezeigt wird, die Fangschnur einsetze, wird die Größe nicht richtig berechnet und die Fangschnur schränkt die Einschränkungen nicht richtig ein. Wenn ich es mit einem setTimeout debounte, kann ich es an der richtigen Stelle bekommen, aber das fühlt sich hokey an. Meine Frage

Gibt es eine Art Rückrufmechanismus, den ich anhängen kann und der aufgerufen wird, nachdem show.bind das Element sichtbar gemacht hat?

Meine Vorlage:

<div ref="tooltip" show.bind="selectedAlert" class="homepage-stats-tooltip panel panel-default">
    <div class="panel-body">
        <h1>${selectedAlert.Name}</h1>
        <dl>
            <dt>Normal</dt>
            <dd>${selectedAlert.NormalVolume}</dd>
            <dt>Current</dt>
            <dd>${selectedAlert.CurrentVolume}</dd>
        </dl>
    </div>
</div>

Die Funktion, die das Modell festlegt und Tether aufruft:

showTip(event, state) {
    if (!state) {
        return;
    }

    console.log(`Show tip for ${state.Name}.`);
    this.selectedAlert = state;

    setTimeout(() => {
        new Tether({
            element: this.tooltip,
            target: event.target,
            attachment: "top left",
            targetAttachment: "top right",
            constraints: [
                {
                    to: this.usMap,
                    pin: true,
                    attachment: 'together'
                }
            ]
        });
    }, 10);
}

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage