角度:v8.2.8
我设法使用 mat-menu (angular material) 来模拟上下文菜单。无论如何在我的页面上右键单击,菜单会出现在我的鼠标位置。
我想要实现的目标:当我将鼠标移动到页面上的另一个位置时,我再次右键单击。我期待原始位置的菜单在新位置关闭并重新打开。
但实际上:当我右键单击时,没有任何反应,原始位置的菜单保持打开状态。
事实上,我必须左键单击以关闭原始位置打开的菜单,然后右键单击以在新鼠标位置打开菜单。
问题:知道如何实现我想要的吗?
@Component({
selector: 'fl-home',
template:`
<mat-menu #contextmenu>
<div >
<button mat-menu-item>Clear all Paths</button>
</div>
</mat-menu>
<div [matMenuTriggerFor]="contextmenu" [style.position]="'absolute'" [style.left.px]="menuX" [style.top.px]="menuY" ></div>
<div class="container" (contextmenu)="onTriggerContextMenu($event);"> ....</div>
`})
export class HomeComponent {
menuX:number=0
menuY:number=0
@ViewChild(MatMenuTrigger,{static:false}) menu: MatMenuTrigger;
onTriggerContextMenu(event){
event.preventDefault();
this.menuX = event.x - 10;
this.menuY = event.y - 10;
this.menu.closeMenu() // close existing menu first.
this.menu.openMenu()
}
}
Run Code Online (Sandbox Code Playgroud) 有人可以向我解释 Flutter 卡片小部件和容器小部件之间的区别吗?它们的工作方式相同,具有相同的属性也看起来相同?为什么我应该在容器小部件上使用卡片小部件作为卡片
我想使用以下架构创建 GraphQL API
app.use(
"/graphql",
graphQlHttp({
schema: buildSchema(`
type Event {
_id: ID!
title: String!
description: String!
price: Float!
}
input EventInput {
title: String!
description: String!
price: Float!
}
type QueryResolver {
getEvents: [Event!]!
}
type MutationResolver {
createEvent(eventInput: EventInput): [Event!]!
}
schema {
query: QueryResolver
mutation: MutationResolver
}
`),
rootValue: {}
})
);
Run Code Online (Sandbox Code Playgroud)
目前我在主文件中将它用作字符串。我想将其分离到一个 graphql 文件中。一种方法是我们可以读取该文件,但我认为这效率不高。
你能告诉我该怎么做吗?
有人可以告诉我如何将菜单抽屉集成到 Row 小部件中而不是 Scaffold 小部件中吗?类似于 Gmail 的应用程序(使用抽屉图标搜索)。