Работает 1-е угловое приложение (угловое 7) и идет медленно.Имейте отображаемую отзывчивую панель навигации, и карта ngx-mapbox является основным экраном.Приложение будет использоваться для отслеживания активов по мере их движения на карте.Попытка заставить компонент 'урегулирования' отображаться в верхней части карты, чтобы пользователь мог настроить некоторые общие параметры.Но компонент не отображается.Когда я нажимаю на значок настроек, он меняет цвет, чтобы показать, что он активен, поэтому я знаю, что многое работает, но компонент не отображается и не генерирует никаких ошибок.Глядя на дерево маршрутизации с помощью Augury, он показывает, что компоненты являются частью дерева маршрутизации.Heirarchy выглядит следующим образом: приложение - - карта (отображение по умолчанию) - настройки (отображение в верхней части карты) - о (отображение в верхней части карты) - вход / выход из системы (открытая форма, которая будет использоваться для проверки подлинности Azure) - и добавитдругие по мере того, как я разрабатываю
Вот app.component.html:
<app-navbar >
<app-map></app-map>
<router-outlet></router-outlet>
</app-navbar>
Navbar html выглядит следующим образом:
<div style="height: 100vh;">
<mat-toolbar color="primary">
<span class="lg-view" fxHide.lt-md>
<b class="cawg">CAWG</b>
<b class="cawg-header">T</b><span class="cawg-text">racking and </span>
<b class="cawg-header">R</b><span class="cawg-text">emote </span>
<b class="cawg-header">A</b><span class="cawg-text">ircraft </span>
<b class="cawg-header">C</b><span class="cawg-text">ommunication </span>
<b class="cawg-header">S</b><span class="cawg-text">ystem (TRACS) </span>
<span class="cawg-text">3.0</span>
</span>
<span class="sm-view" fxHide.gt-sm>
<b class="cawg-text">TRACS3</b>
</span>
<span class="flex-spacer"></span>
<div fxShow="true" fxHide.lt-md="true">
<!-- The following menu items will be hidden on both SM and XS screen sizes -->
<button mat-icon-button class="d-none d-sm-inline" [matMenuTriggerFor]="menu">
<mat-icon>menu</mat-icon>
</button>
<mat-menu #menu="matMenu" [overlapTrigger]="false">
<button mat-menu-item>
<mat-icon>airplanemode_active</mat-icon>
<span>Real-time Tracking</span>
</button>
<button mat-menu-item>
<mat-icon svgIcon="historical-tracking-black-48-inactive" style="color: black"></mat-icon>
<span>Historical Tracking</span>
</button>
<button mat-menu-item>
<mat-icon>grid_on</mat-icon>
<span>Display Grids</span>
</button>
<button mat-menu-item>
<mat-icon>airplanemode_inactive</mat-icon>
<span>Stop Tracking</span>
</button>
<button mat-menu-item>
<mat-icon>grid_off</mat-icon>
<span>Grids Off</span>
</button>
</mat-menu>
<button mat-icon-button class="d-none d-sm-inline">
<a [routerLink]="'/settings'"><mat-icon>settings</mat-icon></a>
</button>
<button mat-icon-button routerLink="chat" class="d-none d-sm-inline">
<mat-icon>chat_bubble_outline</mat-icon>
</button>
<button mat-icon-button routerLink="reportIssue" class="d-none d-sm-inline">
<mat-icon>bug_report</mat-icon>
</button>
<button mat-icon-button routerLink="about" class="d-none d-sm-inline">
<mat-icon>info</mat-icon>
</button>
<button mat-button routerLink="login" class="nav-button">
Sign In
</button>
</div>
<div fxShow="true" fxHide.gt-sm="true">
<a href="#" (click)="sidenav.toggle()"><mat-icon aria-label="Side nav toggle icon" >menu</mat-icon></a>
</div>
</mat-toolbar>
<mat-sidenav-container fxFlexFill class="example-container">
<mat-sidenav #sidenav fxLayout="column">
<div fxLayout="column">
<mat-nav-list>
<mat-list-item >
<mat-icon>airplanemode_active</mat-icon>
<a matLine href="#" >Real-Time Tracking</a>
</mat-list-item>
<mat-list-item >
<mat-icon svgIcon="historical-tracking-black-48" style="color: black;"></mat-icon>
<a matLine href="#" >Historical Tracking</a>
</mat-list-item>
<mat-list-item >
<mat-icon>grid_on</mat-icon>
<a matLine href="#" >Display Grids</a>
</mat-list-item>
<mat-list-item >
<mat-icon>airplanemode_inactive</mat-icon>
<a matLine href="#" >Stop Tracking</a>
</mat-list-item>
<mat-list-item >
<mat-icon>grid_off</mat-icon>
<a matLine href="#" >Grids Off</a>
</mat-list-item>
<mat-list-item>
<mat-icon>settings</mat-icon>
<a matLine routerLink="settings" >Settings</a>
</mat-list-item>
<mat-list-item>
<mat-icon>chat_bubble_outline</mat-icon>
<a matLine href="#" >Toggle Chat Window</a>
</mat-list-item>
<mat-list-item>
<mat-icon>bug_report</mat-icon>
<a matLine href="#" >Report Issue</a>
</mat-list-item>
<mat-list-item>
<mat-icon>info</mat-icon>
<a matLine href="#" >About</a>
</mat-list-item>
<mat-list-item>
<a matLine href="#" >Sign In</a>
</mat-list-item>
</mat-nav-list>
</div>
</mat-sidenav>
<mat-sidenav-content fxFlexFill><ng-content></ng-content>></mat-sidenav-content>
</mat-sidenav-container>
</div>
Карта довольно проста:
<div fxFlexFill class="map">
<mgl-map
[style]="'mapbox://styles/mapbox/outdoors-v9'"
[zoom]="9"
[center]="_center"
(load)="loadMap($event)"
>
</mgl-map>
</div>
app-routing.module.ts:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
import { routes } from './routes';
import { SettingsContainerComponent } from '../components/settings- container/settings-container.component';
@NgModule({
declarations: [],
imports: [
RouterModule.forRoot(routes, { enableTracing: true }),
CommonModule,
SettingsContainerComponent
],
exports: [
RouterModule
]
})
export class AppRoutingModule { }
rout.ts:
import { Routes } from '@angular/router';
import { DisplayMapComponent } from '../components/map/map.component';
import { SettingsContainerComponent } from '../components/settings- container/settings-container.component';
export const routes: Routes = [
{
path: 'map',
pathMatch: 'full',
component: DisplayMapComponent,
},
{
path: 'settings',
pathMatch: 'full',
component: SettingsContainerComponent,
data: { title: 'Settings' }
}
]
На данный момент настройки - это просто заполнитель.finins-container.component.html:
<div fxFlexFill class="settigns-container">
<h1>{{title}}</h1>
</div>>
и settings-container.component.ts:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-settings-container',
templateUrl: './settings-container.component.html',
styleUrls: ['./settings-container.component.scss']
})
export class SettingsContainerComponent implements OnInit {
constructor() { }
ngOnInit() {
console.log('settings-contains init');
}
}
Если переместить селектор выше карты на панели навигации, тоКомпонент настроек отображается над картой, но это не то, что я хочу.Я хочу, чтобы настройки (и другие компоненты) накладывались на карту при их вызове.Как мне это сделать?
Спасибо .....