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

时间:2016-11-27 23:46:32

标签: angularjs angular-services angular-controller

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

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

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

哪一个更有意义,可能会有最少的代码重复?可以有更好的替代方案吗?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我建议你去寻找每个单元的控制器并构建服务,将其视为可以在控制器之间共享的元素,将它们构建为功能独立的可共享元素。

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

答案 2 :(得分:0)

可以在earlier post

中找到角度控制器与角度服务的良好描述

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

相关问题