gpt4 book ai didi

Angular2 Material : Md-Menu opens below router outlet

转载 作者:行者123 更新时间:2023-12-03 21:50:08 24 4
gpt4 key购买 nike

当将 md-menu 与 @angular/material 一起使用时,无论我如何堆叠组件,该菜单都会在我的路由器导出下方打开。我在这里缺少什么?

app.modules.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule, Router } from '@angular/router';

import { MaterialModule } from '@angular/material';
import { MdButtonModule } from '@angular/material';
import { MdIconModule } from '@angular/material';
import { AppComponent } from './app.component';
import { ROUTES } from './app.routes';
import { ErrorComponent } from './error.component';
import { HomeComponent } from './home/home.component';
import { NavComponent } from './nav/nav.component';
import { LoginComponent } from './login/login.component';
@NgModule({
declarations: [
AppComponent,
ErrorComponent,
HomeComponent,
NavComponent,
LoginComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
MdButtonModule,
MdIconModule,
RouterModule.forRoot(ROUTES),
MaterialModule.forRoot()
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }

app.routes.ts

import {Routes} from '@angular/router';
import {AppComponent} from './app.component';
import {ErrorComponent} from './error.component';
import { HomeComponent } from './home/home.component';
import { LoginComponent } from './login/login.component';
export const ROUTES: Routes = [
{path: '', component: HomeComponent },
{path: 'login', component: LoginComponent },
{path: '**', component: ErrorComponent}
];

app.component.ts

import { Component } from '@angular/core';

@Component({
selector: 'app-root',
template: `
<app-nav></app-nav>
<router-outlet></router-outlet>
`
})
export class AppComponent {
}

nav.component.ts

import { Component } from '@angular/core';

@Component({
selector: 'app-nav',
templateUrl: './nav.component.html',
styleUrls: ['./nav.component.css'] # No styles applied.
})
export class NavComponent {
}

nav.component.html

<md-toolbar>
<button md-icon-button [md-menu-trigger-for]="menu">
<md-icon class="dark"> menu </md-icon>
</button>
<md-menu #menu="mdMenu">
<button md-menu-item [routerLink]="['']">Home</button>
<button md-menu-item [routerLink]="['login']">Login</button>
<button md-menu-item> Help </button>
<button md-menu-item disabled> Sign Out </button>
</md-menu>
</md-toolbar>

home.component.ts

import {Component} from '@angular/core';

@Component({
selector: 'app-home',
templateUrl: './home.component.html'
})
export class HomeComponent {
}

home.component.html

<p> With a bunch of ipsum <p>

如上所述,单击菜单时,它会在我的 <p> block 下方打开假话。在内容上打开菜单我缺少什么?

我也遇到了 firefox 的问题,在菜单外单击不会将菜单折叠回去。经过一番挖掘,我明白这很可能是 Material 的一个错误。我不相信它们是相关的,但是我也不相信我大部分时间都知道我在说什么……这就是为什么我把它放在这里。非常感谢!

最佳答案

问题是我没有按照 github docs 中的描述声明全局主题对于 Angular/ Material

这是通过将以下内容添加到我的根样式来实现的:

样式.css

@import '~@angular/material/core/theming/prebuilt/deeppurple-amber.css';

或者,您可以在 index.html 中添加一个链接。

<link href="node_modules/@angular/material/core/theming/prebuilt/deeppurple-amber.css" rel="stylesheet">

顺便说一句:这也修复了我的 Firefox 错误

关于Angular2 Material : Md-Menu opens below router outlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41273407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com