javascript - 将 angularjs 指令设置为 "attributes"还是 "elements"是更好的约定吗

标签 javascript html angularjs

在制作 Angular Directive(指令)时,似乎有一组指令可以合理地定义为 HTML 元素或属性。我试图弄清楚社区惯例(如果有的话)是围绕选择哪一个以及为什么。

例如,以属性为中心的 View 可能是:

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

在元素样式 View 中也是如此:

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

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

最佳答案

如果你想支持IE8或更低版本,请忘记elements。属性或类名是正确的选择。

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

  • 如果该指令旨在用作组件,即实质性功能,有自己的模板等,我会选择一个元素。例如选项卡控件、 Accordion 、日历等。
  • 如果该指令只是向内置元素(输入、选择等)或第一种自定义指令添加一个小行为,我会将其设为一个属性。

关于javascript - 将 angularjs 指令设置为 "attributes"还是 "elements"是更好的约定吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20648532/

相关文章:

javascript - Angular js 将变量从父指令传递到子指令

ruby-on-rails - 如何在 AngularJS 中实现 "Keep me logged in"功能

javascript - 如何制作一个 HTML/JS 所见即所得的编辑器?

javascript - 如何在 Canvas 上制作一个长方形的小三 Angular 形?

javascript - 将函数传递给刺激

javascript - 标签中的 Vue.js 链接

html - 容器高度未扩展以适应内容导致溢出

javascript - Angularjs 维护用户状态和部分模板

javascript - 从 php Controller 动态添加标记

javascript - Controller 上未命中断点,但返回了来自 Controller 的数据