一尘不染

角度指令-元素还是属性?

angularjs

我是一个团队的成员,该团队有大约6个UI开发人员,质量各异,几乎没有Angular经验。许多是承包商,几乎没有代码库经验。该应用程序具有非常漂亮的(复杂的)UI。它支持IE8
+(希望很快会成为IE9 +)。

我们正在为应用程序的主要扩展引入Angular,并且有人要求我为团队编写有关使用Angular的准则。

我们将使用指令来创建精美的UI元素,所有元素均以“
ipwr”为前缀,以避免名称冲突。我正在尝试确定是否要强制要求开发人员为其指令赋予限制“元素”或“属性”。仅强制执行一项,以避免混乱和混乱。

我的问题是:对于“ element”或“
attribute”指令,哪种限制更好或更受欢迎?我的主要关注点是对于不具备Angular经验的新手,这些人是应用程序代码基础的新手,以减少错误,复制和粘贴行为等。


阅读 245

收藏
2020-07-04

共1个答案

一尘不染

角度指南指出,只要指令完全控制其模板(即其具有要渲染的模板等),都应使用“ element”限制。

对于属性,他们建议仅在将“行为”添加到现有元素或装饰现有元素时才使用这些属性。

例如,以ng-click指令为例,它用作属性而不是元素,因为click指令只是将click行为添加到某个元素。

另一个示例是ng-repeat指令,它也用作属性而不是元素,因为它将重复使用该元素的元素。

现在,该指南来自相关文档。但是,我不确定元素vs.属性是否会给您“更好”的方法,它更像是一种约定。

现在,如果您必须支持较旧的浏览器,则可能需要考虑使用注释或类指令。

我个人的喜好是只使用属性限制;主要是因为刚接触角度的人在看到限制时会不知所措,这是可以使用的选项的变体。

2020-07-04