angular 2 get组件调用管道

时间:2016-10-01 07:51:39

标签: angular typescript

我需要知道调用我的管道的组件。

我不想将组件作为管道的参数,例如这个 operator[]

我想要这个{{ "textArg" | myTranslatorPipe:thisTemplate }}并仍然可以访问该组件。

{{ "textArg" | myTranslatorPipe }}

我将如何做到这一点? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我发现这样做的唯一方法是将组件作为参数直接传递给管道。

transform方法在args内接收无限数量的参数,它将通过以下代码来解决问题:

export class myTranslatorPipe implements PipeTransform {
    transform(value: string, componentRef: any): string {
        //component is stored inside the 'componentRef' 
        if (typeof componentRef === 'undefined' || componentRef === null) {
            throw Error('Missing "componentRef" parameter, correct implementation is "myTranslatorPipe: this".');
        }
        // here you can use your component reference
    }   
}

唯一的是,您将必须{{ "textArg" | myTranslatorPipe: this}}而不是{{ "textArg" | myTranslatorPipe }}来实现管道。

验证不是强制性的:typeof componentRef === 'undefined' || componentRef === null