Два способа усечь текст в angular.
let str = 'How to truncate text in angular';
1. Решение
{{str | slice:0:6}}
Вывод:
how to
Если вы хотите добавить любой текст после строки среза, например
{{ (str.length>6)? (str | slice:0:6)+'..':(str) }}
Вывод:
how to...
2. Решение (Создать пользовательский канал)
, если вы хотите создать собственный усеченный канал
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'truncate'
})
export class TruncatePipe implements PipeTransform {
transform(value: string, args: string[]): string {
const limit = args.length > 0 ? parseInt(args[0], 10) : 20;
const trail = args.length > 1 ? args[1] : '...';
return value.length > limit ? value.substring(0, limit) + trail : value;
}
}
В разметке
{{ str | truncate:[20] }} // or
{{ str | truncate:[20, '...'] }} // or
Не забудьте добавить вход в модуль.
@NgModule({
declarations: [
TruncatePipe
]
})
export class AppModule {}
Вот стекаблиц Вы можете проверить здесь
Другой способ, используя css
.b {
white-space: nowrap;
width: 60px; /* you can do with the help of width */
overflow: hidden;
text-overflow: ellipsis;
}
<div class="b">Hello world!</div>