【问题标题】:Placing directive logic inside controller rather than link将指令逻辑放在控制器中而不是链接
【发布时间】:2014-12-25 08:14:34
【问题描述】:

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

  1. 指令逻辑可以很容易地进行单元测试。
  2. 您完全有义务在视图模型中使用“点表示法”,从而防止出现意外行为。

至于缺点 - 一旦逻辑在控制器内部,它就会暴露给其他指令,好像鼓励其他指令的开发人员访问这些变量/方法,即使它们不打算从外部访问。 我有兴趣了解您对此的看法吗?你如何在指令中组织你的代码。

谢谢

【问题讨论】:

  • 这是一个有趣的问题。链接和directice-controller之间似乎有很多重叠。似乎在未来它只是一个带注释的类——本质上与 ControllerAs 构造函数相同。你能链接到其中一些例子吗?它们来自风格指南吗?
  • teropa.info/blog/2014/10/24/… @Martin 以上就是其中之一。我会尝试找到我读过的其他人

标签: angularjs angularjs-directive directive


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-01-28
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2014-04-05
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多