Моя маршрутизация в приложениях angular2 работает хорошо. Но я собираюсь создать routeLink на основе этого :
Вот моя маршрутизация:
const routes: RouterConfig = [
{ path:'home' , component: FormComponent },
{ path:'about', component: AboutComponent },
{ path:'**' , component: FormComponent }
];
И вот ссылки, которые я сделал:
<ul class="nav navbar-nav item">
<li>
<a routerLink='/home' routerLinkActive="active">Home</a>
</li>
<li>
<a routerLink='/about' routerLinkActive="active">About this</a>
</li>
</ul>
Я ожидаю, что когда я нажимаю на них, он переходит к уважаемому компоненту, но они ничего не выполняют?
angular
angular2-routing
Джефф
источник
источник
[routerLink]='[/home']
? Какую версию Angular2 и версию роутера вы используете?[routerLink]="['/home']"
directives: [ROUTER_DIRECTIVES],
к метаданным вашего компонента. Без этого Angular не сможет проанализироватьrouterLink
s.Ответы:
Код, который вы там показываете, абсолютно правильный.
Я подозреваю, что ваша проблема в том, что вы не импортируете RouterModule (где объявлен RouterLink) в модуль, который использует этот шаблон.
У меня была аналогичная проблема, и мне потребовалось время, чтобы решить, поскольку этот шаг не упоминается в документации.
Итак, перейдите к модулю, который объявляет компонент с этим шаблоном, и добавьте:
затем добавьте его в свой импорт модулей, например
Наряду с правильными операторами импорта вам также понадобится место для отображения этой routerLink, которое находится в
<router-outlet></router-outlet>
элементе, поэтому его также необходимо разместить где-нибудь в вашей разметке HTML, чтобы маршрутизатор знал, где отображать эти данные.источник
не забудьте это добавить в свой шаблон ниже:
источник
Попробуйте изменить ссылки, как показано ниже:
Также добавьте в заголовок index.html следующее:
<base href="https://stackoverflow.com/">
источник
используйте это так, чтобы получить больше информации прочтите эту тему
источник
routerLink
должен работать ;-)"@angular/router": "~3.4.0"
. Ура!Я знаю, что этот вопрос уже довольно старый, и вы, скорее всего, его уже исправили, но я хотел бы опубликовать здесь как ссылку для всех, кто найдет этот пост при устранении этой проблемы, заключается в том, что такого рода вещи выиграли не работает, если ваши теги привязки находятся в Index.html. Он должен быть в одном из компонентов
источник
Ссылки неверные, вы должны сделать это:
Вы можете прочитать это руководство
источник
Для тех, у кого возникла эта ошибка после разделения модулей, проверьте ваши маршруты, со мной произошло следующее:
public-routing.module.ts:
app-routing.module.ts:
Перейдите
{ path: '**', redirectTo: 'home' }
в свой AppRoutingModule:public-routing.module.ts:
app-routing.module.ts:
источник
Я использовал routerlink вместо routerLink .
источник
Есть и другой случай, который подходит к этой ситуации. Если в вашем перехватчике вы заставили его возвращать не логическое значение, конечный результат будет таким.
Например, я пытался вернуть
obj && obj[key]
вещи. После некоторой отладки я понял, что мне нужно вручную преобразовать это в логический тип, напримерBoolean(obj && obj[key])
, чтобы позволить щелчку пройти.источник
Следуя рабочему образцу , я нашел решение для случая чистого компонента:
источник
Из-за не очень острых глаз, как у меня,
href
вместо этогоrouterLink
мне потребовалось несколько поисков, чтобы понять это #facepalm.источник