在Angular里面,services作为单例对象在需要到的时候被创建,只有在应用生命周期结束的时候(关闭浏览器)才会被清除。而controllers在不需要的时候就会被销毁了。服务用于在控制器之间进行共享,用的时候只要把服务注入到控制器就可以了。

provider(name,object)

provider(name,constroctor)

factory(name,$getFunction)

service(name,constroctor())

例子:

用factory创建服务

在service里面当我们仅仅需要的是一个方法和数据的集合且不需要处理复杂的逻辑的时候,factory()是一个非常不错的选择

<script src="angular.min.js"></script>
<!-- <script src="a.js"></script> -->
<!-- <script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script> -->
</head>
<body ng-app="app" ng-controller="myController">
</body>
</html>

<script>
var app=angular.module('app',[]).factory('Items',function(){
  var items={};
  items.query=function(){
   return [
    {name:"YY",age:20}
   ];
  };
  return items;
})
app.controller('myController',['$scope', 'Items',function($scope, Items){
    $scope.items=Items.query();
    console.log($scope.items)
}]);
</script>

provider创建服务-$get是必须的

app.provider('age',function($filterProvider){
    this.age=10;
    this.$get=function(){
        return this.age;
    }
});

或者

app.provider('age2',{
    age:12,
    $get:function(){
        return this.age+2;
    }
});

其他服务

app.service("date",Date);//得到一个已有对象的实例

仅仅定义一个$get,而且就一个常量的时候可以用value和constant,constant可以注入到config ,value不可以

app.value('pageCount',7);//直接返回一个常量

app.constant('pageCount',7);//直接返回一个常量

service和value都可以直接返回一个常量

app.service("ser",function(){
    this.name="YY";
    this.age=20
})

service不需要显示的返回对象,factory需要显示的返回对象 只有provider创建的服务可以注入到config里面

angular 服务的更多相关文章

  1. angular服务二

    angular服务 $http 实现客户端与服务器端异步请求 get方式 test.html <!DOCTYPE html> <html lang="en"> ...

  2. angular服务一

    angular服务 [$apply()] jquery内数据绑定 要用$apply(),不然不能在js内通过angular绑定数据 <!DOCTYPE html> <html lan ...

  3. angular 服务 service factory provider constant value

    angular服务 服务是对公共代码的抽象,由于依赖注入的要求,服务都是单例的,这样我们才能到处注入它们,而不用去管理它们的生命周期. angular的服务有以下几种类型: 常量(Constant): ...

  4. 理解 Angular 服务

    理解 Angular 服务 本文写于 2021 年 3 月 29 日 理解 Angular 服务 什么是服务 服务写法 原理简述 提供服务 1. 在服务中注册 2. 在 module 中注册 3. 在 ...

  5. Angular服务的5种创建方式

    config配置块 Angular应用的运行主要分为两部分:app.config()和app.run(),config是你设置任何的provider的阶段,从而使应用可以使用正确的服务,需要注意的是在 ...

  6. Angular 服务的简单使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. angular服务

    angular创建服务的五种方式:  factory() factory()方法是创建和配置服务的最快捷方式.factory()函数可以接受两个参数. name(字符串)需要注册的服务名. ge ...

  8. angular 服务之间依赖注入

    import { Injectable } from '@angular/core'; @Injectable() export class LoggerServiceService { constr ...

  9. Angular定义服务-Learn By Doing

    1.服务(Service)介绍 Angular services are substitutable objects that are wired together using dependency ...

随机推荐

  1. MVC 增删改查

    MVC内部的增删改查语句都是用Lambda表达式写成的,因此要想使用MVC内部的增删改查就要学会写Lambda表达式. 这里拿表Train来仅作研究: //声明一个表Train的上下文对象 AirSy ...

  2. OSPF_Network-type

    OSPF的网络类型 目录 OSPF的网络类型... 1 总实验拓扑如下... 2 Router模拟帧中继交换机(所有网路为星型)... 2 配置映射... 3 广播模式下的OSPF. 4 非广播模式下 ...

  3. OSPF多区域配置

    1.配置三台路由器IP R1(config)#INTER S1/0 R1(config-if)#IP ADDress 192.1.12.1 255.255.255.0 R1(config-if)#no ...

  4. 【Unity3D】Unity3D之 注册表动态存取游戏存档——PlayerPrefs类

    [Unity3D]Unity3D之 注册表动态存取游戏存档--PlayerPrefs类 1.Unity3D提供了一个用于本地持久化保存与读取的类--PlayerPrefs.工作原理非常简单,以键值对的 ...

  5. UNIX 信号基本概念

    1. 信号的基本概念 为了理解信号,先从我们最熟悉的场景说起: 用户输入命令,在Shell下启动一个前台进程. 用户按下Ctrl-C,这个键盘输入产生一个硬件中断. 如果CPU当前正在执行这个进程的代 ...

  6. 初探内联方式的 onload="doSomething()"为何要加"()"?而js代码的 onload="doSomething" 和 addEventListener 为何不加"()"?

    问题引入:在看<Jquery基础教程>第四版的时,P34页有这样一段话 引用函数与调用函数 这里在将函数指定为处理程序时,省略了后面的圆括号,只使用了函数名.如果带着圆括号,函数会被立即调 ...

  7. 《锋利的jQuery》心得笔记--One Sections

    第一章 1.    $是jQuery的一个简写形式 2.    在jQuery中无法使用DOM对象的任何方法:比如:$ (“#id”).innerHTML.$ (“#id”).checked, 可以使 ...

  8. 10+ powerful debugging tricks with Visual Studio

    10+ powerful debugging tricks with Visual Studio Original link : http://www.codeproject.com/Articles ...

  9. Excel中 设置使得每行的颜色不一样

        在编写测试案例的时候,众多的excel行看的眼睛花花的,这里给出一个小技巧,设置Excel的每行显示的颜色不一样,最终的效果如下:    具体操作:     1. Ctrl+A全选所有表格区域 ...

  10. 不用Unity库,利用.NET动态代理自己实现AOP

    AOP意为面向切面的程序设计,主要表现为对不同的代码逻辑进行隔离,从而降低不同业务逻辑之间的耦合性,AOP又理解为“横切”,可以在不改变原有实现的情况下,对代码进行拦截和扩展,如果原有设计像一个瓶子, ...