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
相关产品推荐
相关产品推荐

