【发布时间】:2021-08-06 13:07:21
【问题描述】:
我正在尝试创建一个多角度的管道,在使用管道时呈现自定义 HTML。 在自定义 HTML 中,我可以通过在管道中传递组件中的方法来访问它吗?
readMorePipe.ts
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'readMore'
})
export class ReadMorePipe implements PipeTransform {
transform(text: string, length: number = 20, showAll: boolean = false, suffix: string = '...'): any {
if (showAll) {
return text;
}
if (text.split(" ").length > length) {
text = text.split(" ").splice(0, length).join(" ") + suffix;
return `<button (click)="triggerReadMore()" style="color:red;"> //trying to pass function to the component and that function defined in that component
${text}
</button>`
}
return text;
}
}
Test.component.ts
<span innerHTML="{{someText | readMore:3:showAll}}"></span>
Test.component.ts
public showAll: boolean = false;
someText: string = "text text text text";
triggerReadMore(){
console.log("do something")
}
问题:
- 渲染 HTML
button - 我们能否以某种方式将函数名传递给组件?(也许使用 javascript)
- 如果有更好的方法请告诉我
【问题讨论】:
-
如果数据已格式化,我需要将数据格式化为该管道和基础,我需要呈现
read more button
标签: angular pipe angular-pipe