我一直在阅读很多文档,而且我越来越困惑。我基本上无法弄清楚a之间的区别
- 服务
- 指示
- 模块
我看到很多自定义组件。有时他们使用指令,有时使用服务。它总是从一个模块开始。有人可以举例说明这三种类型之间的区别吗?
我一直在阅读很多文档,而且我越来越困惑。我基本上无法弄清楚a之间的区别
我看到很多自定义组件。有时他们使用指令,有时使用服务。它总是从一个模块开始。有人可以举例说明这三种类型之间的区别吗?
来自我自己的个人笔记(主要来自文档、谷歌群组帖子和 SO 帖子的片段):
模块
服务
指令(下面的一些项目说的基本相同,但我发现有时稍微不同的措辞会有很大帮助)
在模块中定义和分组 Angular 的东西(依赖注入的东西)。
共享数据并将 Web 服务器交互封装在服务中。
扩展 HTML 并在指令中进行 DOM 操作。
并使控制器尽可能“薄”。
将模块视为连接许多其他事物的地方,例如指令、服务、常量等。模块可以注入到其他模块中,从而为您提供高水平的重用。
在编写 Angular 应用程序时,您将拥有一个顶级模块,它是您的应用程序代码(没有模板)。
服务主要是控制器之间通信的一种方式,但您可以将一个服务注入另一个服务。服务通常用作访问数据存储的一种方式,人们将包装 Angular API,例如 ngResource。这种技术很有用,因为它使测试(尤其是模拟)变得非常容易。您可以拥有用于执行其他操作的服务,例如身份验证、日志记录等。
指令用于创建小部件或包装现有的东西,如 jquery 插件。包装现有插件可能是一个挑战,您这样做的原因是在插件和 Angular 之间建立双向数据绑定。如果您不需要双向数据绑定,则不需要包装它们。
指令也是进行 DOM 操作、捕获 DOM 事件等的地方。你不应该在控制器或服务中做与 DOM 相关的事情。创建指令会变得相当复杂。恕我直言,我建议首先查看 API 以获取可以执行您正在寻找的东西的东西,或者向 Angular 的 Google Group 寻求建议。