#angular
#angular
Вопрос:
После того, как я запутался, я попытался написать простое упражнение по маршрутизации. Когда я реализую свой код с помощью, я вижу, что есть 2 кнопки, даже если у меня нет кнопок в элементах маршрутизатора. Но когда я реализую без выхода маршрутизатора, я вижу на экране соответствующую кнопку 1.
Вот мой пример;
app.component.html:
<div>
<button type="button" class="btn btn-outline-secondary"><a
routerLink="./elements"
routerLinkActive="active">Table</a></button>
</div>
<router-outlet></router-outlet>
app.routing-mdule.ts:
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { Element2Component } from './element2/element2.component';
const routes: Routes = [
{
path: '',
component: AppComponent,
children: [
{ path: 'elements', component: Element2Component },
]
}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
element2.component.html:
<p>element2 works!</p>
В качестве более глубокого объяснения; когда я пытаюсь сделать это на моем app.component.html:
<div>
<button type="button" class="btn btn-outline-secondary"><a
routerLink="./elements"
routerLinkActive="active">Table</a></button>
</div>
Я вижу одну кнопку. Также, когда я применяю только router-outlet, я вижу только «elements works!», Как и ожидалось. Но когда я пытаюсь реализовать эти 2 вместе, я вижу 2 кнопки и «элементы работают!». Почему я не вижу на экране только 1 кнопку и «элементы работают!»?
Любая помощь будет оценена.
Комментарии:
1. после прочтения вашего кода я не понимаю, как вы могли бы получить две кнопки, можете ли вы привести пример stackblitz?
2. можете ли вы поделиться своим кодом на stackblitz
3. Привет, stackblitz.com/edit /…
Ответ №1:
Ваша кнопка отображается дважды, потому что я полагаю, что AppComponent является вашим корневым компонентом (и всегда есть), а также у вас есть его в качестве пути по умолчанию «». Итак, ваш компонент загружается дважды!
Итак, здесь используйте другой компонент, кроме AppComponent, в вашем пути по умолчанию; не используйте его повторно 🙂