我可以 return 内置管道吗?

Can I return built-in pipe?

我有一个关于 angular2 管道的问题。 我想根据 schema:string 将管道作为 return 值。 我认为有 2 种方法可以得到它,但都不起作用。

page.html

<p>{{value | getSchema(value, schema)}}</p>

page.ts

getSchema(value, schema){
    if(schema == 'Currency'){
        return "currency: 'USD':true";
    } else if(schema == 'Number'){
        return 'number';
    }
}

page.html

<p>{{getSchema(value, schema)}}</p>

page.ts

getSchema(value, schema){
    if(schema == 'Currency'){
        return value + "| currency: 'USD':true";
    } else if(schema == 'Number'){
        return value + '| number';
    }
}

有什么想法吗? 谢谢。

您可以使用根据参数调用另一个管道的自定义管道

@Pipe({name: 'genericPipe'})
class MyPipe {
  constructor(private currPipe:CurrencyPipe, private numberPipe:NumberPipe) {}
  transform(value, schema) {
    if(schema == 'Currency') {
      return this.currPipe.transform(value);
    } else {
      return this.numberPipe.transform(value);
    }
  }
}
<p>{{value | genericPipe:schema}}</p>