我对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>
有什么想法吗? 感谢。
答案 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>