Попробуйте обновленный подход ниже, так как мое первоначальное предположение было действительно неточным, так как я не был слишком знаком с этими конкретными c событиями.
Обновление: мое первоначальное предположение состояло в том, что приведенное ниже будет работать - оказался неверным :
<svg:circle r="15" fill="red">
<svg:animateMotion (repeat)="repeatMethodInsideTs()"
dur="10s"
begin="indefinite"
repeatCount="indefinite"
calcMode="linear"
repeatCount="indefinite"
path="...."
/>
</svg:circle>
Обратите внимание, что * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * не о ней; * * * *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 100 * * * * * * 's *' '' s "" ... " являются эквивалентными событиями, которые мы можем просто связать в angular в чистом виде и в альте:
<svg viewBox="0 0 200 100" xmlns="http://www.w3.org/2000/svg">
<svg:path fill="none" stroke="lightgrey"
d="M20,50 C20,-50 180,150 180,50 C180-50 20,150 20,50 z" />
<svg:circle r="5" fill="red">
<svg:animateMotion (beginEvent)="begin($event)" (repeatEvent)="repeat($event)" dur="3s" repeatCount="indefinite"
path="M20,50 C20,-50 180,150 180,50 C180-50 20,150 20,50 z" />
</svg:circle>
</svg>
Теперь в ts:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
repeat(event) {
console.log("repeat event called", event)
}
begin(event) {
console.log("repeat event called", event)
}
}
Вот стекаблиц: https://stackblitz.com/edit/angular-px8uf3