2017-05-12 81 views
0

我已经看到了网络NG2管道和最近的几个例子开始实施一个自己:角2自定义管道实现

@Pipe({name: 'planDatePipe'}) 
export class PlanDatePipe implements PipeTransform { 
    transform(value: string): string { 
    return localStorage.getItem(value); 
    } 
} 

我在代码审查告知访问localStorage的是不是一个好的做法这里管道功能通常是“纯”的。这是否被认为是NG2的错误编码?

+3

管道传统上用于格式化或映射数据。他们获取价值,修改它并返回修改后的值。我也会反对这种做法。 localStorage应该被视为可注入用于测试目的的服务。 – ps2goat

回答

1

这是一个可怕的想法。管道不应执行get功能,而是取值,修改它,然后返回修改后的值。

管道中的复杂逻辑可能会严重影响性能。取而代之的是在组件本身中获取所需的数据。

+0

所以他们应该只是“纯”功能就是你说的。 –

+0

我不确定这个词的含义是什么,但我知道你现在正在做的是错误的:) – Chrillewoodz