我需要将一个对象传递给材质菜单操作。
在可能的情况下,我使用material-list
material-list-item
。每个项目都有一个菜单material-menu
。
当我选择菜单选项时,我想通过action:
按照列表示例:
这里是模板(部分):
<material-list>
<div *ngFor="let item of iniciativas">
<material-list-item class="shadow-box-list-item" elevation="2">
<div>
<h4>{{item.nome}}</h4>
<material-progress class="width-300" [activeProgress]="25"></material-progress><span> 25%</span>
<p>{{item.descricao}}</p>
</div>
<span class="material-list-item-secondary">
<material-menu [menu]="menuModel">
</material-menu>
</span>
</material-list-item>
</div>
</material-list>
这里是Dart代码(部分):
final MenuModel<MenuItem> menuModel = new MenuModel([new MenuItemGroup([new MenuItem('Editar', action: () => navegarParaItensTrabalho(null)), new MenuItem('Excluir', action: () => excluirItensTrabalho(null))])], icon: new Icon('menu'));
我希望能有一些方法将DOM参数传递给与action:
上的MenuItem
相关联的函数,我没有找到它。
答案 0 :(得分:1)
执行此操作的方法是在构建menuModel时传入上下文(item),并让menuModel具有上下文而不是共享相同的实例。
有两种方法可以做到这一点:
对于实际的菜单模型,您应该能够:
createMenuModel(item) {
return new MenuModel([new MenuItemGroup([
new MenuItem('Editar', action: () => navegarParaItensTrabalho(item)),
new MenuItem('Excluir', action: () => excluirItensTrabalho(item))])],
icon: new Icon('menu'));
}