У меня есть статическая страница для условий.
Ссылки настроены следующим образом
<li>
<a [routerLink]=""
fragment="user-submission-testimonials">User Submission Testimonials</a>
</li>
term-routing.module.ts:
const routes: Routes = [
{
path: '', component: BasicLayout,
children: [
{ path: 'terms-and-conditions', component: TermsAndConditionsComponent }
]
}
];
const routerOptions: ExtraOptions = {
useHash: false,
anchorScrolling: 'enabled',
scrollPositionRestoration: 'enabled'
};
@NgModule({
declarations: [],
imports: [
CommonModule,
RouterModule.forRoot(routes, routerOptions)
],
exports: [
RouterModule
]
})
export class TermsRoutingModule { }
Что управляет прокруткой «анимация»:
export class TermsAndConditionsComponent implements OnInit, AfterViewChecked {
constructor(private route: ActivatedRoute, private element: ElementRef) { }
ngOnInit() { }
ngAfterViewChecked(): void {
console.log(this.element.nativeElement.id)
this.route.fragment.subscribe((fragment: string): void => {
if (fragment && this.element.nativeElement && this.element.nativeElement.id === fragment) {
this.element.nativeElement.scrollIntoView({ behavior: 'smooth' });
}
});
}
}
У меня есть console.log для отладки, он ничего не печатает, даже не определено.Это просто пусто.Однако, если я пытаюсь сделать это с обычным JS, например:
ngAfterViewChecked(): void {
this.route.fragment.subscribe((fragment: string): void => {
if (fragment && document.getElementById(fragment) !== null) {
document.getElementById(fragment).scrollIntoView({ behavior: "smooth" });
То, что мне запрещено использовать JS, это нужно сделать с помощью TS.Или, по крайней мере, мой начальник говорит, что это не TS, и мне нужно сделать это с TS
* 1016, связанным с Angular * Я видел решение директивы post
на reddit из-за ElementRef XSS isues Но это не такработает на меня :( Что мне не хватает?