【问题标题】:Can I return built-in pipe?我可以退回内置管道吗?
【发布时间】:2017-04-10 05:45:24
【问题描述】:

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

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';
    }
}

有什么想法吗? 谢谢。

【问题讨论】:

  • 为什么不把开关逻辑放在一个接受参数的管道中呢?它会更清晰,而且性能可能不会那么差。

标签: angular ionic2 angular2-pipe


【解决方案1】:

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

@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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-28
    • 2020-07-31
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多