一尘不染

服务,指令和模块之间有什么区别?

angularjs

我读了很多文档,并且越来越困惑。我基本上不知道

  • 服务
  • 指示
  • 模组

我看到了很多自定义组件。有时他们使用指令,有时使用服务。它总是从模块开始。有人可以举例说明这三种类型之间的区别吗?


阅读 339

收藏
2020-07-04

共1个答案

一尘不染

可以将模块视为连接其他许多事物的地方,例如指令,服务,常量等。可以将模块注入到其他模块中,从而使您可以高度重用。

编写有角度的应用程序时,您将拥有一个顶级模块,即您的应用程序代码(没有模板)。

服务主要是控制器之间进行通信的一种方式,但是您可以将一个服务注入另一个服务。服务通常被用作访问数据存储的一种方式,人们会使用Angular
API封装包装,例如ngResource。这项技术很有用,因为它使测试(尤其是模拟)变得非常容易。您可以使用服务来执行其他操作,例如身份验证,日志记录等。

指令用于创建小部件或包装jquery插件之类的现有内容。包装现有的插件可能是一个挑战,而这样做的原因是在插件和angular之间建立双向数据绑定。如果不需要双向数据绑定,则不需要包装它们。

指令也是进行DOM操作,捕获DOM事件等的地方。您不应在控制器或服务中进行与DOM相关的工作。创建指令可能会变得非常复杂。恕我直言,我建议您首先查看可以满足您需求的API,或者向Angular的Google小组寻求建议。

2020-07-04