Я разрабатываю веб-приложение с использованием Angular 8, где мне нужно создать динамическое меню из базы данных. Прежде чем приступить к окончательной работе, я провел небольшой тест, в котором получил неожиданный результат. я установил переменную в файле .ts для хранения кода для меню, а затем привязал эту переменную к файлу html с помощью [innerHTML]. когда я нажимаю на ссылку, ожидается, что компонент загружается, но проблема заключается в том, что вместо частичной загрузки он выполняет полную перезагрузку страницы. Я не понимаю, почему частичный рендеринг не происходит. Пожалуйста, помогите мне в этом отношении..
main.component.ts
import { Component, OnInit } from '@angular/core';
import { MenuService } from 'services/menu.service';
import { MenuDTO } from 'dto/MenuDTO';
@Component({
selector: 'app-main',
templateUrl: './main.component.html',
styles: []
})
export class MainComponent implements OnInit {
menuStr: string;
ngOnInit() {
this.menuStr = '<a routerLink="Supplier" href="/main/Supplier" >Supplier</a>';
}
}
main.component.html
<div [innerHTML]="menuStr | safehtml ">
</div>
<a routerLink="vhe" href="/main/vhe" >Vehicle List</a>
Здесь Safehtml — это канал, который выглядит следующим образом
import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer } from '@angular/platform-browser';
@Pipe({ name: 'safehtml' })
export class SafeHTMLPipe implements PipeTransform {
constructor(private sanitizer: DomSanitizer) { }
public transform(value: any, type: string): any {
return this.sanitizer.bypassSecurityTrustHtml(value);
}
}
Итак, вот две ссылки 1. Поставщик и 2. Список транспортных средств. Первая ссылка создается путем привязки опции [innerHTML] и второй ссылки непосредственно к коду HTML. при нажатии на первый компонент ссылки отображается с полным обновлением страницы, а при нажатии на второй подобный компонент отображается частично. Мой вопрос для первой ссылки, почему компонент отображается с полным обновлением страницы? Почему компонент не отображается частично, когда ссылка создается путем привязки [innerHTML]?