2017-02-15 41 views
0

比方说,我有一个pipeVar,它可以是任何管道,例如:数字,大小写,customPipe等有没有一种方法来动态评估/使用角度(角度2+)管道?

有没有一种简单的方法只是调用类似

{{ myVal | pipeVar }} 

或一些特殊的语法像

{{ myVal | #pipeVar }} 

我到目前为止发现的最接近的是Dynamic pipe in Angular 2

+0

入住这https://开头plnkr。 co/edit/Vz88zzWwzPbqgIpMinPp?p =预览 – yurzui

+0

@yurzui感谢闯入者。我正在考虑类似的实施。但是具有额外参数的管道也需要支持。另外,我认为我需要支持多个管道才是理想的,比如'passThrough:[actualPipes]' – techguy2000

+0

请检查这个plunkr https://plnkr.co/edit/xX1klYoaGMq1O2TJzu8w?p=preview –

回答

0

我有更新plunkr plunkr link

变化动态pipe.ts这样

const dynamicPipe = ""; 
//i have give one simple logic for example if your dynamic pipe is like 
this.dynamicPipe = ['number','uppercase','customPipe']; //pipe,pipe1 ... pipeN 
//now create a one variable like 'number' | 'uppercase' | 'customPipe' 
for (let i=0;i<this.dynamicPipe.length;i++){ 
    dynamicPipe = dynamicPipe + " | "+this.dynamicPipe[i]; 
} 
@Component({ 
    selector: 'dynamic-comp', 
    template: '{{ data ' + dynamicPipe + '}}' 
}) 
+0

我明白了。感谢您指出我们可以让编译器关心多管支持。我还没有测试过AOT的解决方案,你知道它是否可以与AOT协同工作? – techguy2000

+0

什么是AOT?我不知道AOT。 –

+0

提前编译。 yurzui提到它不适用于AOT。虽然我还没有试过 – techguy2000