Я новичок в 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в общей службе.