You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular模板绑定问题:如何在EventEmitter中绑定模型与局部变量值?

解决方案:在EventEmitter中绑定循环变量值

你只需要直接在emit的参数对象里引用当前循环上下文的button.action和model.id就可以了——这两个变量在对应的*ngFor作用域里是可以直接访问的。

修改后的按钮代码如下:

<button type='button' 
        (click)="onAction$.emit({actionName: button.action, id: model.id})" 
        class="btn -icon-btn"
        *ngIf="true">
  <div class="{{button.class}}"></div>
</button>

关键说明:

  • 在*ngFor="let model of source.data"的循环作用域内,model代表当前行的数据源对象,因此model.id能直接获取到当前行对应的ID值;
  • 内层的*ngFor="let button of actionButtons"循环中,button是当前迭代的按钮配置项,button.action就是你需要传递的动作标识;
  • 小提示:你代码里的ng-if="true"是AngularJS的写法,Angular框架中应该使用*ngIf="true",如果这个条件永远为真,也可以直接移除这个指令,简化代码。

这样点击按钮时,onAction$这个EventEmitter就会发送包含正确动作名称和对应行ID的对象了。

内容的提问来源于stack exchange,提问作者yBother

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:10:42