angular2添加“Read More”链接到自定义管道

时间:2016-11-21 11:15:54

标签: angular2-pipe

我创建了自定义汇总管道类它工作正常但是我想在点击显示的所有内容时添加一个读取更多链接结束的子字符串..

import { Pipe, PipeTransform } from '@angular/core';
@Pipe({ name: 'summary' })
export class SummaryPipe implements PipeTransform {
    transform(value: string, maxWords: number) {
        if (value)
            return value.substring(0, maxWords) +"... <a href='#' (click)='getAllText()'>Read more</a>";
    }
       getAllText() {
        //return this.value; ?
    }
}

我需要填写我知道但我需要问什么是更有效和真实的方法来实现这个目标?

1 个答案:

答案 0 :(得分:1)

最佳做法可能是将管道逻辑与“更多”按钮分开。

另外,我建议您使用shorten模块中的ng-pipes管道:https://github.com/danrevah/ng-pipes#shorten

使用示例:

在控制器中:

this.longStr = 'Some long string here';
this.maxLength = 3
this.showAll = () => this.maxLength = this.longStr.length;

在视图中:

<p>{{longStr | shorten: maxLength: '...'}}</p>
<div *ngIf="longStr.length > maxLength" (click)="showAll()">Read More</div>