【发布时间】:2015-01-18 13:58:37
【问题描述】:
我正在寻找有关 Angularjs 1.3.X 的服务、控制器和指令的最佳实践。
这是我注意到的规则:
- 视图 (html) 只知道主控制器及其作用域
- 指令不应该有自己的服务
所以:
- 视图(html)不能直接调用服务。
- 视图 (html) 必须使用主控制器来访问服务。
- 视图必须声明指令和主控制器之间的绑定
然后:
在代码中,如果指令必须调用服务的业务功能 F1 :
- 主控制器必须发布一个包含函数 F1 的函数 F2
- 视图必须在指令配置中声明 F2
您可以查看附图以获得更直观的说明。
问题:
- 你同意这些规则和代码风格吗?
- 你有什么额外的规定吗?
- 为什么我们不应该遵守这些规则?
【问题讨论】:
-
指令->服务怎么样?
-
小控制器和大量服务对我来说似乎是一个好习惯。
-
对我来说,业务服务必须通过主控制器访问。
-
指令基本上是组件。我在指令中调用服务没有问题。它可以独立于控制器。
-
您的架构将导致根控制器在大型应用程序上过于复杂,因为它必须存储应用程序中使用的服务的所有链接。我更喜欢将代码拆分为组件。每个组件都有自己的控制器,控制器在需要时调用一些服务。这为我提供了清晰的逻辑分离。
标签: angularjs model-view-controller