HTML中的自定义属性绑定

nav*_*een 4 angular

使用Angular 5,我将data-target绑定为 [attr.data-target]="id"

JavaScript对象

var ids = [1, 2]; 
Run Code Online (Sandbox Code Playgroud)

HTML

<div *ngFor="let id in ids">
    <p [attr.data-target]="id"></p>
</div>
Run Code Online (Sandbox Code Playgroud)

被渲染为

<div>
    <p data-target="1"></p>
    <p data-target="2"></p>
</div>
Run Code Online (Sandbox Code Playgroud)

目标是实现类似的目标

<div>
    <p data-target="collapse1"></p>
    <p data-target="collapse2"></p>
</div>
Run Code Online (Sandbox Code Playgroud)

如何在string属性(date- ,aria)之前添加/附加一些静态?

yur*_*zui 14

有几种方法可以实现此目的:

插值

attr.data-target="collapse{{id}}"
Run Code Online (Sandbox Code Playgroud)

属性绑定

[attr.data-target]="'collapse' + id"
Run Code Online (Sandbox Code Playgroud)

属性绑定规范形式

bind-attr.data-target="'collapse' + id"
Run Code Online (Sandbox Code Playgroud)

使用自定义方法

TS

getTarget(id) {
  return `collapse${id}`;
}
Run Code Online (Sandbox Code Playgroud)

HTML

[attr.data-target]="getTarget(id)"
Run Code Online (Sandbox Code Playgroud)

要么

bind-attr.data-target="getTarget(id)"
Run Code Online (Sandbox Code Playgroud)

ng-run上的实例