Angularjs 将指令逻辑放置在控制器内部而不是链接

Angularjs 将指令逻辑放置在控制器内部而不是链接,angularjs,angularjs-directive,directive,Angularjs,Angularjs Directive,Directive,我有一个一般性问题。我最近看到很多例子,人们把他们所有的指令逻辑放在一个指令控制器中,并将其与Controllera一起使用,而不是使用link。我确实从中看到了某些好处: 指令逻辑可以很容易地进行单元测试。 您有义务在视图模型中无缝地使用点符号,从而防止意外行为。 至于缺点——一旦逻辑位于控制器内部,它就会暴露于其他指令中,好像鼓励其他指令的开发人员访问这些变量/方法,即使这些变量/方法不是从外部访问的。 我有兴趣了解你对这件事的看法?如何在指令中组织代码 谢谢我使用Angular大约4个月了

我有一个一般性问题。我最近看到很多例子,人们把他们所有的指令逻辑放在一个指令控制器中,并将其与Controllera一起使用,而不是使用link。我确实从中看到了某些好处:

指令逻辑可以很容易地进行单元测试。 您有义务在视图模型中无缝地使用点符号,从而防止意外行为。 至于缺点——一旦逻辑位于控制器内部,它就会暴露于其他指令中,好像鼓励其他指令的开发人员访问这些变量/方法,即使这些变量/方法不是从外部访问的。 我有兴趣了解你对这件事的看法?如何在指令中组织代码


谢谢

我使用Angular大约4个月了,所以我不能 说我有太多的经验。然而在我的 个人经验我使用控制器仅用于逻辑 需要在链接之前共享或执行的
作用我想您可以通过使用模块模式对控制器隐藏一些逻辑,并且只公开真正需要的逻辑。在我的辩护中,我没有写过真正复杂的控制器,但这就是我要走的路。对不起,我写得不好,我正在用手机回复

这是一个有趣的问题。链接和directice控制器之间似乎有很多重叠。看起来在将来它将只是一个带注释的类-本质上与ControllerAs构造函数相同。你能链接到这些例子中的一些吗?它们是来自样式指南吗@上面的马丁就是其中之一。我会设法找到我读过的其他书