AngularJs控制器和指令的目的,正确的方法?

时间:2016-10-17 04:25:34

标签: angularjs

我一直在深入阅读有关angularjs指令和控制器的内容,应该在一个和另一个中。情况是这样的,我有多个人的类型 - >管理员面板应用程序内的警察,医学,律师......等,管理员可以管理它们。在一个部分中,管理员可以创建,编辑,删除它们。当前版本控制器几乎完成所有工作:UI(显示正确的表单,隐藏其他表单......)和逻辑(删除,创建,更新每个人类型的方法)。据我所知,这并不好,因为控制器做了很多事情(没有一个责任)。而且控制器应该只将值绑定到范围。

但这是否意味着,我应该只拉动所有人(控制器内部)并传递一些主要指令来管理它?或者他们应该在指令内部更多指令来分担责任吗?

如果是这样,控制器必须使用与指令/指令相同的服务。用于从后端拉人的控制器)和指令/指令(用于创建/更新/删除)是干吗?

1 个答案:

答案 0 :(得分:1)

如果没有代码,很难给出准确的答案,但使用angular时的一般想法是:

  • 控制器:控制器负责使视图保持最新,包括整个应用程序中发生的所有更改。这意味着它应包含业务逻辑,而应将此逻辑分成小型服务。每个处理应用程序逻辑的不同部分。

  • 服务:如上所述,服务应包含您的业务逻辑。这意味着重型计算,操作等应该放入服务中。由于服务是单例,您可以轻松地在任何地方注入此服务并重新使用其中的逻辑,如果您将逻辑放在控制器中,则无法做到这一点。

  • 指令:与控制器一样,指令不应包含任何业务逻辑。指令仅用于创建可重用的功能,并为您提供处理直接DOM更改的位置。 DOM更改绝不应该在指令内的任何地方进行。

回答这个问题:

  

如果是这样,控制器必须使用与指令/指令相同的服务。用于从后端拉人的控制器)和指令/指令(用于创建/更新/删除)是干吗?

如果您将数据绑定到控制器,则不一定需要指令来处理CRUD操作。由于数据绑定到控制器,因此您可以使用ng-repeatng-if等轻松创建自动响应数据更改的模板。