首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将函数绑定到对象属性?

如何将函数绑定到对象属性?
EN

Stack Overflow用户
提问于 2019-05-27 03:53:08
回答 1查看 79关注 0票数 -2

有一个带有方法的类:

public add() {}
public delete(item: Ivoice) {}

以及在对象内部映射这些方法的方法:

    this.invoices = data.map(item => {
            item.add = this.add;
            item.edit = this.delete;
            return item;
   });

然后在模板中,我尝试这样调用方法:

<div *ngFor="let item of items; let i = index">
  <span (click)="item.add(item)">
</div>

但它不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-05-27 04:48:47

虽然,还不清楚你真正想要实现的是什么,但从技术上讲,问题在于:

item.add = this.add;
item.edit = this.delete;  

您基本上是将函数/方法引用分配给item对象。下一次你通过模板中的一个item.add(项目)通过item调用方法时,方法/函数将在item的作用域中调用,而不是在你的类“,即ItemComponent,作用域中调用,这显然是你想要的行为。

您可以使用bind method来避免此问题:

item.add = this.add.bind(this);
item.edit = this.delete.bind(this);  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56316898

复制
相关文章

相似问题

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