使angularjs指令“属性”或“元素”更好的约定

时间:2013-12-18 02:16:21

标签: javascript html angularjs

在制作角度指令时,似乎有一些set指令可以合理地定义为HTML元素或属性。我试图找出社区惯例(如果有的话)围绕哪一个选择,以及为什么。

因此,例如,以属性为中心的视图可能是:

<div list-container>
  <div list-filter/>
  <div list="listOptions"/>
</div>

和元素样式视图中的相同:

<list-container>
   <list-filter />
   <list controller="listOptions" />
</list-container>

我的个人偏好是第二个(似乎更容易阅读,不必担心跨度与div等),但我见过的大多数示例和库似乎更喜欢属性方法(使得有效的HTML) ?)

1 个答案:

答案 0 :(得分:4)

如果您想支持IE8或更低版本,请忘记元素。属性或类名是要走的路。

否则,我认为这在很大程度上取决于指令的类型:

  • 如果指令要用作组件,即实质性功能,有自己的模板等,我会选择一个元素。例如标签控件,手风琴,日历等。
  • 如果指令只是向内置元素(输入,选择等)或第一类自定义指令添加小行为,我会将其作为属性。