将可变数据传递给组件控制器Angular

时间:2017-08-23 03:42:12

标签: angular typescript

所以我有以下内容:

<div *ngFor="let career of careers">
    <label>{{career.name}}</label>
    <input type="checkbox" attr.id="{{career.id}}" (change)="doSomethingWithId($event.target)"
</div>

TS组件:

doSomethingWithId(target: Element): void {
     console.log(target.attributes.id);
}

此处的ID出错:

  

财产&#39; id&#39;类型&#39; NamedNodeMap&#39;。

上不存在

我不知道attr.id是否是最好的方式,或者它应该只是id,甚至是data-id。但我需要获得被点击的职业生涯。

1 个答案:

答案 0 :(得分:1)

id的绑定错误。 改变这个

 attr.id="{{career.id}}"

到这个

[attr.id]="career.id"

更新1 如果你只想要职业ID,你可以直接在你的职能中传递它

<input type="checkbox (change)="doSomethingWithId(career.id)"

并在您的服务中

doSomethingWithId(target): void {
     console.log(target);
}