我应该有更多 angular 服务或控制器吗?

Should I have more angular services or controllers?

我正在开发一个 angular 网络游戏,我有一堆任务使用单个 html 模板作为视图。我遇到的问题是如何组织 Angular 代码。

我是否应该只有一个控制器(它将包含非任务特定的逻辑)并使用一堆服务(一个用于每个任务特定的逻辑)?控制器可能有一个很大的 if/else 块来为选定的任务使用正确的服务。

或者我应该为每个任务配备一个控制器吗?这样我们就可以总体上使用更少的服务,并在任务的各个控制器之间共享它们。

哪个更有意义并且可能具有最少的代码重复?两者都有更好的选择吗?

您不能在控制器之间共享代码。如果你想减少重复代码,你应该创建服务,这样你就可以在它们和控制器之间共享代码。

我只是建议您为每个单元选择一个控制器,并将服务视为您可以在控制器之间共享的元素,将它们构建为功能独立的可共享元素。

任务 1 = 控制器 1 -> 注入该任务所需的所有服务
任务 2 = 控制器 2 -> 注入此控制器所需的所有服务
......

关于 angular 控制器与 angular 服务的详细描述可以在 earlier post

中找到

我建议为每个任务使用一个控制器。将与该特定任务相关的服务注入每个控制器。尽管您仍然需要编写服务来与控制器共享 data/logic,但您可以避免不必要的服务注入以及大量 if/esle 块