2017-01-31 138 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,你有三种结构类型来决定),这更多的是你选择的偏好问题。

在你的例子中,你会使用管道。假设您想以粗体文本显示货币值,并使用图像图标作为货币符号,您可能需要使用指令