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