angular中的value、factory、service、constent

来源:互联网 发布:鉴知往来的意思 编辑:程序博客网 时间:2024/06/05 02:06

描述

在angular中,一个单页面web应用是一些相互协作的对象构成的。这些对象是由注入服务自动的实例化并且绑定的。

注入器创建两类对象:服务+专用对象。

专用对象中,主要是由这么几种概念构成:指令、控制器、动画、过滤器。

而服务的概念中,主要是value、factory、service、constent。

value

提供一个基本的类似key:value的对象服务。可以为其他服务提供一个可使用的“变量”。

基本的使用格式:

app.value('clientId',123456);

然后可以直接在其他服务中注入并且使用。

app.service('myService',['clientId',function myService(clinetId){    //code}])

factory

针对value只能提供简单的字符串之类的服务。factory可以提供比较复杂的一种服务,比如可以实现依赖注入等。

app.factory('myFactory',['clinetId',function myFactory(clinetId){    //code}])

service

Service遵循 “构造函数注入” 的设计模式。它通过使用 new 操作符调用构造函数来实现

先定义一个构造函数。

function Unicorn(id){    this.tag = false;    this.getId = function(){        return id;    }}

然后service可以通过下面的方式来实现

app.service('myService',['clinetId',Unicorn])

constent

constent是提供了一种在任何时候(配置阶段和运行阶段)都可以访问的服务。

一般而言,它是整个angular项目中,申明module之后,最先执行的部分。

app.constent('key','abc123');

这样就定义了一个最简单的的配置。

一般项目中,会定义一些常量,如全局请求路径、主色调配置、路由配置等等。

app.constent('mainUrl','http://mapbar.com');
原创粉丝点击