如何在角度html中以逗号分隔的字符串打印数组

Har*_*mer 9 angular-pipe angular

我必须在HTML中以json显示解析数组:

 <p class="personaType">{{cardData.names}}</p>
Run Code Online (Sandbox Code Playgroud)

名字是哪里

names: Array(5) 0:"Person" 1:"Artist" 2:"Performing Artist" 3:"Production Artist" 4:"Visual Artist" 5:"Intermedia Artist"
Run Code Online (Sandbox Code Playgroud)

我想将名称显示为:

人,艺术家,表演艺术家,制作艺术家

现在它显示为(没有空格):

人,艺术家,表演艺术家,制作艺术家

是否有任何内置管道可用于显示此类数据的角度?

bug*_*ugs 28

你可以使用Array.prototype.join(注意逗号后面的空格)

<p class="personaType">{{cardData.names.join(', ')}}</p>
Run Code Online (Sandbox Code Playgroud)

这将打印数组中的所有元素,以逗号和空格分隔.

  • 这回答了 Angular 的“不好的做法”,因为直接在模板 html 内运行函数,应该使用管道。请参阅下面的答案 (3认同)
  • 很高兴它有所帮助.注意,这不是特定于Angular,只是一个标准的JS数组方法 (2认同)
  • 这不是黑客,但请参阅下面的答案,了解如何以角度来实现更高的性能。 (2认同)

Tro*_*ber 20

为了最大限度地减少应用程序的负载,您还可以考虑创建一个管道。

它可能是这个样子,至于用法:<p>{{ cardData.names|join:', ' }}</p>

变换函数看起来像这样:

@Pipe({
  name: 'join'
})
export class JoinPipe implements PipeTransform {
  transform(input:Array<any>, sep = ','): string {
    return input.join(sep);
  }
}

Run Code Online (Sandbox Code Playgroud)

  • 老实说,应该是公认的答案,尽管这个例子可以更充实。 (6认同)
  • @crush我把整个管道放在那里。如果您还有其他想法,请告诉我。 (2认同)