标签:
在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里面
标签:
原文地址:http://www.cnblogs.com/youzhuxiaoyao/p/4936876.html