Angular 为我们提供了一种编写指令的机制——它的功能非常强大。但我一直想知道的是——在什么情况下你应该真正编写你自己的自定义指令。
我们一直在 Stack Overflow 内部和周围看到各种问题,各种人试图编写(在我看来)不需要首先编写的指令。在大多数情况下,它们可以通过重复、切换和显示的组合来解决。请参阅包含指令的问题示例,我认为这些指令首先不应该是指令!
https://stackoverflow.com/questions/16101073/angularjs-directive-is-not-working-in-ie-10
angularjs:在 ui-bootstrap 模式中使用指令
一些示例场景。无论如何我都不会挑剔它们……因为我确信任何人都不清楚我们何时应该使用/编写指令。
我们看到人们使用指令作为模板机制的场景。这是正确的做事方式吗?或者,还有更好的方法?(也许是ng-include?)使用指令作为模板机制有什么好处/坏处吗?这个问题的原因是,有时我想知道人们是否编写指令,因为他们来自 jquery 世界,他们首先想到的是编写 DOM 操作代码,并且由于 Angular 的方式是不在控制器中操作 DOM,所以这一切都倾向于编写指令中的所有代码。
编辑 :
我相信这种混淆(在指令中推东西)的出现是因为 Angular 没有单独的“视图”概念 - 不像 Backbone(它只有一个“视图”但没有组件!)。指令在定义组件方面非常出色——但我认为如果你使用它们来创建“视图”,你将失去一些“角度”的方式。不过,这是我的观点——这就是为什么我要征求其他 Angular 社区的想法。
更简单的指令(只做一件事的指令!)的好处是它们绝对容易测试。如果您查看所有 ng 指令,它们都会做一件事并且做得很好。
在 Angular 中定义可重用“视图”(不是组件!)的最佳方法是什么?应该写在指令中吗?或者,还有更好的方法?
如果其中一位 Angular 开发人员对此事有意见,那就太棒了!