在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里面

最新文章

  1. iOS 中的 HotFix 方案总结详解
  2. MVC5知识点记录
  3. [整理]Centos6.5 + hadoop2.6.4环境搭建
  4. laravel 5.2 引入第三方类
  5. [DeviceOne开发]-白板的示例
  6. iOS-图文表并茂,手把手教你GCD
  7. 烂泥:kvm安装windows系统蓝屏
  8. django转义safe
  9. C#调用大漠插件的方法和实例
  10. Android加速度传感器实现“摇一摇”,带手机振动
  11. C/C++中逗号表达式的用法
  12. 数组,集合 转成DataTable 方法
  13. BZOJ3237: [Ahoi2013]连通图
  14. React 思维索引
  15. 目前市场上有些什么样的数据库管理系统(DBMS),它们都有什么特点?它们之间的优缺点有什么?它们的使用场合分别是?
  16. oracle的读写分离实现
  17. windows工具打开命令
  18. 非递归和递归分别实现求第n个斐波那契数。
  19. python学习之老男孩python全栈第九期_数据库day003 -- 作业
  20. waitdialogform z

热门文章

  1. 让项目管理理论&ldquo;落地&rdquo;&mdash;&mdash;读《IT项目经理成长手记》有感
  2. Sql 求比率 类型 影响 结果
  3. 分布式PostGIS系列【2】——pgpool-II
  4. 2016.10.30 济南学习 Day2 下午 T1
  5. change
  6. template_12特化与重载
  7. 运行maven报错:经过检查是因为maven不兼容jdk1.6,重新安装1.7解决
  8. laravel步骤 (我是新手)
  9. OrCAD Capture CIS与Allegro交互布局
  10. asp.net mvc常用的数据注解和验证以及entity framework数据映射