2017-01-31 188 views
5

什麼是用於創建和使用指令VS創建和使用管道的參數。角2:指令VS管道

這個問題源於的情景是貨幣輸入和輸出。

如果用戶需要輸入貨幣,爲什麼不創建/使用將輸入解析爲格式化貨幣字符串的指令?另一種選擇是採取在該字符串,並顯示它通過管道像這樣:

<input type="text" #val (keydown)="currencyVal=val.value" /> 
<h3>{{currencyVal | currency}}</h3> 

VS

// Where mask-money is a directive that filters the 
//input to a formatted currency string 
<input type ="text" mask-money (keydown)="currencyVal=val.value" /> 
<h3>{{currencyVal}}</h3> 

在另一方面,管道可以在控制器中使用/組件由輸入觸發以過濾該值。

我可以問一大堆關於它的問題,但我基本上想知道:什麼是每個參數?

+1

我會說「角度方式」是使用管道。管道用於格式化數據,指令將改變元素的行爲/外觀。就你而言,你顯然希望前者。我不知道你會得到很多的「論據每個案例」,因爲這似乎是一個小問題。另外,S.O.不鼓勵意見帖子。 – AngularChef

回答

9

要拿點最簡單地說,我會說是操縱數據,而指令則多爲DOM操作

的管獲得的數據作爲輸入,以另一種方式將其轉換和輸出該數據。

指令獲取一個DOM元素,它「附加」並通過某種功能增強它。

當然,你會發現兩個都有意義的例子(考慮Components,你有三種結構類型來決定),這更多的是你選擇的偏好問題。

在你的例子中,你會使用管道。假設您想以粗體文本顯示貨幣值,並使用圖像圖標作爲貨幣符號,您可能需要使用指令