首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PrimeNG MenuCallback

PrimeNG MenuCallback
EN

Stack Overflow用户
提问于 2016-09-07 04:01:13
回答 2查看 2.7K关注 0票数 4

我使用的是卓越的prime-ng库中的p-panelmenu。

代码语言:javascript
复制
<p-panelMenu [model]="items" (click)="onClicked(event)"></p-panelMenu>

问题是我不知道如何让菜单做任何事情。primeNG网站上的示例都会显示菜单,但不会触发任何操作。

如何获取当前选定的项目?我注意到在menuItem类上有一个“命令”回调;但是为每个菜单项定义一个回调似乎很疯狂。而不是只传递给所选菜单项的一个回调。这里我漏掉了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-09-07 04:52:21

我必须编写一个递归函数来遍历菜单项和子项,并为每个菜单项和子项分配一个命令回调:

代码语言:javascript
复制
export class TreeViewComponent implements OnInit {
  @Output() onSelectedChanged: EventEmitter<MenuItem> = new EventEmitter<MenuItem>();

  items : any[] = [];

  constructor (private contentService: ContentService) {
  }

  ngOnInit() {
      this.getFolders();
  }

  getFolders() {
    this.contentService.getFolders().subscribe(this.setItems);
  }

  setItems = (x: any) => {
      this.assignCallback(x);
      this.items = x.items;
  }

  assignCallback(item:MenuItem){
    if(item.items != null && item.items.length > 0) {
      item.items.forEach(x => this.assignCallback(x))
    }
    item.command = this.commandCallback;
  }

  commandCallback(ev){
    console.log(ev.item);
  }
}

我会把这个问题留下来;一定有更好的方法?

票数 2
EN

Stack Overflow用户

发布于 2017-08-16 03:16:43

https://www.primefaces.org/primeng/#/menumodel

您可能想要阅读有关MenuItem类型的文档,了解大多数PrimeNG的菜单组件。在项可能具有的选项列表中,有一个执行回调的“command”选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39356945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档