См. p-dropdown. Я изменил класс City
, у которого теперь есть еще одно свойство url
. Это свойство указывает путь к компоненту.
Я создал раскрывающийся список как
interface City {
name: string;
code: string;
url: string;
}
export class DropdownDemo {
cities: City[];
selectedCity: City;
constructor() {
this.cities = [
{name: 'New York', code: 'NY', url: 'app/ny'},
{name: 'Rome', code: 'RM', url: 'app/rm'},
{name: 'Washington DC', code: 'DC', url: 'app/dc'},
{name: 'Houston', code: 'HT', url: 'app/ht'},
{name: 'Paris', code: 'PR', url: 'app/pr'}
];
}
}
Выпадающее меню находится на панели навигации. Страница html:
<div class="collapse navbar-collapse>
<ui class="narbar-nav mr-auto">
<li class="nar-item>
<a class="nav-link" href="#" routerLink="/api/ny">NY</a>
</li>
<li class="nar-item>
<a class="nav-link" href="#" routerLink="/api/rm">RM</a>
</li>
<li class="nar-item>
<a class="nav-link" href="#" routerLink="/api/dc">DC</a>
</li>
<li class="nar-item>
<a class="nav-link" href="#" routerLink="/api/ht">HT</a>
</li>
<li class="nar-item>
<a class="nav-link" href="#" routerLink="/api/pr">
<p-dropdown [options]="cities" [(ngModel)]="selectedCity"
optionLabel="name"></p-dropdown>
</a>
</li>
</ui>
</div>
Выпадающий список отображается правильно. Теперь я хочу, чтобы если я щелкнул элемент раскрывающегося меню, он перешел к соответствующему компоненту. Так что, наверное, мне придется куда-нибудь привязать href
или routerLink
. Но я просто не знаю как?
ОБНОВЛЕНИЕ:
Если я добавляю событие щелчка внутри элемента p-dropdown
при навигации, код кажется работающим, но страница все еще находится в компоненте пути api/pr
.