是AngularJS中声明式编程的工厂和服务实例



在Angular JS中,我们声明服务和工厂。我们通过声明一个函数来创建一个服务。我们自己并不调用函数。

这是否意味着这是声明性编程。我想,这个框架能起到命令的作用吗?

在后台进行的必要工作是什么?

是的,Angular完成了与实例生命周期相关的大部分命令性工作(用你的话说)。以下是Angular为您做的一些事情:

  • Angular中由开发人员声明的每个服务、工厂和提供程序都为Angular提供该服务的构造函数、工厂创建的实例或返回具有返回提供程序实例的$get()方法的对象的构造函数。有关此的更多信息,请参阅此处
  • Angular中的所有服务都是只实例化一次的singleton(当第一次注入某个控制器、服务、指令或其他什么时)。这意味着可以使用注入到不同控制器的相同服务来共享状态
  • 此外,Angular为每个服务/工厂创建了与服务/工厂同名的提供者,并在幕后添加了单词"提供者"

控制器、指令和过滤器与服务非常相似,但需要一些特殊处理(因为要注入范围/输入)。Angular也为他们创造了很多有用的员工。

如果说实话,在大约半年的时间里,我每天晚上都在使用Angular,我注意到它根本停止使用new,只是因为不再需要了——Angular关心创建和销毁实例。

最新更新