2

我有一个关于 angular2 管道的问题。我想根据模式获取管道作为返回值:字符串。我认为有两种方法可以得到它,但两者都不起作用。

page.html

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

页面.ts

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

或者

page.html

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

页面.ts

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

有什么想法吗?谢谢。

4

1 回答 1

2

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

@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>
于 2016-11-25T20:31:42.237 回答