Я новичок в Angular. Я реализую веб-проект с использованием среднего стека и Angular 6. Там мне нужно открыть панель, и там есть меню. Я хочу открывать разные html-представления в разных компонентах при щелчке по пунктам меню.
Например, у меня есть панель, которая содержит меню в левой части, это компонент «тире». В этом меню есть пункт под названием «Карты». Когда я нажимаю на пункт меню «Карты», он должен отображать вид html в файле «maps.component.html». Здесь «тире» и «карты» - это два разных компонента.
Что я пробовал.
Определил логическую переменную isMap в файле dash.component.ts. Установите его значение как false в начале.
Изменено значение переменной на "true", когда заголовок элемента равен "Maps"
например:
//Select the relavant view according to the selected menu item
onContecxtItemSelection(title) {
if (title == "Maps") {
this.isMaps=true;
}
}
Wrapped the html in maps.component.html using a div and set the 'isMap' variable using an '*ngIf'.
например:
<div style = "float: right; " *ngIf = "isMaps">
<p>Map page</p>
</div>
Мой первый вопрос:
Когда я нажимаю на пункт меню, он не показывает содержимое maps.component.html Второй вопрос:
Переменная isMaps в maps.component.html показывает следующую ошибку.
Идентификатор [Angular] isMaps не определен. Объявление компонента, объявления переменных шаблона и ссылки на элементы не содержат такого члена '. Я также попытался импортировать «компонент карт» в файл «dash.component.ts». Но не вышло. Я удалил эту часть.
Спасибо. Маршрутизация не работает для моего приложения.
@ user184994 следует ли реализовать общую службу как другой компонент?
Не как компонент, нет; это должна быть услуга. Взгляните на angular.io/guide/… для ознакомления с услугами
@ user184994 извините за вопрос еще раз. Не могли бы вы привести пример моего сценария. Мой компонент тире и компоненты карт являются братьями и сестрами. Не родитель и ребенок.
Если вы создадите очень простой пример в StackBlitz с вашими двумя компонентами, я создам вилку, которая демонстрирует, что я имею в виду.
@ user184994 Спасибо. Здесь я создал проект «stackblitz.com/edit/angular-bzkpvz». «Меню» находится в тире, и когда мы перемещаемся по пункту меню «карты», оно должно отображать эту страницу. Пожалуйста, если вы можете помочь.
Компонент dash в настоящий момент не создается (возможно, из-за отсутствия зависимостей)
@ user184994 Я обновил проект
Если да, то не похоже, что вы его сохранили. Я более чем счастлив помочь, но можете ли вы предоставить StackBlitz, который хотя бы строит и, возможно, даже отображает компонент тире?
Переменная
isMaps
определена вdash.component
, поэтому она доступна только вdash.component
, но не вmaps.component
. Подойдет ли маршрутизация для вашего приложения? Если нет, вы можете определитьisMaps
в общей службе.