2017-05-12 121 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