【发布时间】:2016-06-02 04:13:47
【问题描述】:
我们一直在避免将 Angularjs 指令限制为类。主要是因为我们发现了一些反对它的消息来源(包括John Papas opinionated styleguide)。同时,我们一直避免将其限制为元素,因为它会与 W3C 标准相冲突。 (我们就是这样的纯粹主义者)。
所以,我们一直在使用的只是限制属性(不,我们不会谈论评论方法)。在大多数情况下工作正常,但在部署具体对象时似乎太松了。例如。侧边栏。这以及replace: true 选项将是deprecated,让我想知道为什么不使用限制类。似乎有道理:
<nav class="maarten-sidebar">
<!-- sidebar directive content -->
</nav>
对比:
<div data-maarten-sidebar>
<!-- sidebar directive content -->
<nav class="sidebar"></nav>
</div>
它也可以很好地与我们的 CSS 文件搭配使用。通过一些研究,我们发现有些人反对它。但主要原因不是很清楚。所以我的问题实际上是:使用restrict: 'C'的陷阱是什么
【问题讨论】:
-
除其他原因外,我认为使用实际元素和属性来说明这是一段 JS 逻辑 - 自定义指令更简洁。这在代码中清晰可见,并且比可能被 HTML/CSS 编码器弄乱的类更安全。
-
javascript 开发一直在推动规范。现代浏览器中包含各种领先于实时规范的东西。对所有指令使用类应该是最后的选择,而不是第一选择。为什么要将商务与风格混为一谈?
标签: javascript angularjs html