【发布时间】:2015-03-09 08:31:12
【问题描述】:
我知道这个话题已经讨论过很多次了,但我仍然不太确定我做的是否正确..
许多在线资源将指令作为 Angular 应用程序的构建块,同时许多资源强调组件的可重用性。无论如何,从我构建典型应用程序的经验来看,没有太多东西可以重用,通常每个组件都有一个角色,并且在一个地方使用。据我了解,主要概念之一是提供语义 DOM,为了实现这一点,我们可以使用指令。因此,当我构建一个 Angular 应用程序时,我通常会创建一组指令并将它们组合到视图中。
在我的应用程序中,大多数情况下,所有 DOM 操作都可以使用 build in 指令完成。我的大部分指令都有一个模板和一个控制器,我不需要使用链接功能。在互联网上的大多数资源中,我可以读到在创建指令时我应该使用链接功能。但这似乎是复杂得多的代码......如果我不需要超出内置指令的任何花哨的 DOM 操作,链接函数有什么好处?
tldr;我使用带有控制器的指令构建我的应用程序并将它们放入视图中,这是正确的方法吗?
【问题讨论】:
-
你可能首先想到的一个快速的事情是你是否需要公开你的 API,如果是使用控制器,如果没有使用链接。
-
嗨@elaijuh,是的,我读到了。我不需要公共 API。问题是为什么?当我使用控制器时,我的代码就不那么复杂了。如果我不需要超出内置指令的任何花哨的 DOM 操作,链接函数有什么好处?
-
控制器本身是一个 $provide 保存在
cacheProvider中,这意味着它可以在任何地方注入。链接函数不能被注入,仅适用于特定指令的操作。另一个需要考虑的事情是,如果控制器只为这个特定的指令做生意,尽量不要让这种设计发生。 -
$provider 的事情似乎只是一个理论上的问题,我没有看到太多的后果。关于业务逻辑 - 正如我之前所说,我不做任何超出范围的 DOM 操作内置指令。但我确实看到了具有语义 DOM 的 html 模板的好处(通过使用内置指令)。也许我不完全理解角度概念,我应该坚持视图而不是指令?
-
您能否进一步说明您正在构建的内容?你的困惑是把东西放在链接或控制器中吗?
标签: angularjs angularjs-directive