provider服务
1、只要被创建就会添加到app中,无论是否注入,都存在且占内存,后续不需等待直接使用
2、其他服务创建完成后,只有注入使用才加载,只有使用时才占据内存,但加载需要时间
3、创建完成自动执行,服务名称.调用对象内容
4、此服务主要目的是空间换时间,节约时间
5、与factory服务类似
语法:app页面数据模型.provider('自定义provider名字',function(){
this.$get=function(){
var obj={};
...
return obj;
}
})
代码示例:
<html ng-app='app' ng-controller='main' >
<head>
<meta charset="utf-8">
<meta name='viewport' content='width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0'>
<title ng-bind='mainTitle'></title>
<script src='js/angular.js'></script>
<script src='js/angular.route.min.js'></script>
<style>
</style>
</head>
<body >
<!-- 向全局变量存储内容 -->
<div class='div1' ng-controller='con'>
<input type="text" ng-model='msg'>
<button ng-click='submit(msg)'>保存</button>
</div>
<!-- 向全局变量获取内容 -->
<div class='div2' ng-controller='con2'>
<p ng-bind='showMsg'></p>
<button ng-click='download()'>下载</button>
</div>
<script>
var app=new angular.module('app',[]);
app.provider('ssr',function(){
this.$get=function()
{
var obj={};
obj.uname='jeff';
return obj;
}
})
app.controller('main',['$scope',function($scope){
$scope.mainTitle='value';
}])
app.controller('con',['$scope',function($scope){
$scope.msg='';
$scope.submit=function(temp)
{
//向全局变量存入msg
}
}])
app.controller('con2',['$scope','ssr',function($scope,ssr){
$scope.showMsg='';
$scope.download=function()
{
console.log(ssr.uname);
}
}])
</script>
</body>
</html>