我可以退回内置管道吗?

时间:2016-11-25 19:47:48

标签: angular ionic2 angular2-pipe

我对angular2管道有疑问。 我想根据schema:string获取管道作为返回值。 我认为有两种方法可以实现,但两者都无效。

page.html中

f = open(filename, 'rU')
outf = open(filename + '_date_diff', 'w')
dict_of_ID_dates = defaultdict(list)
for line in f:
  columns = line.split("|")
  ID1 = (columns[0])
  IDType2 = (columns[1])
  start = (columns[2])
  end = (columns[3])
  start_date = datetime.datetime.strptime(start,'%Y%m%d').date()
  end_date = datetime.datetime.strptime(end,'%Y%m%d').date()
  diff = end_date - start_date
  list_of_dates =[]
  date_ranges = range(diff.days +1)
  # [0,1,2,3]
  for date in date_ranges:
    dates = (start_date + datetime.timedelta(date)).isoformat()
# [datetime format dates = '20160101']
    if dates not in dict_of_ID_dates.values():
      dict_of_ID_dates[ID].append(dates)
print (dict_of_ID_dates)

page.ts

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

page.html中

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

page.ts

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

有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分: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>