AngularJs 服务区别小Demo
来源:互联网 发布:怎么开启mysql服务 编辑:程序博客网 时间:2024/04/30 07:33
一直以来对各种服务区分的都不是很清楚,今天特地写了一个小Demo,来了解了解,先说自己总结的文字性的东西吧,可能有不完善的地方,希望能指出。
谢谢!
Service :简单来说:通过构造函数的方式让我们创建Service。
factory :简单来说:就是返回了一个包含Service方法、数据的对象来定义一个Service。
Provider :必须要有个this.$get(),controller当中才可以通过Provider的名字来调用$get()方法返回的对应的方法与数据,但是不能调用到除了$get()以外的其他方法或属性。它也是唯一一个能够可以在.config()方法中访问到的服务,注入方式是: 名字+Provider,这时候就可以访问到整个Provider的方法跟属性了。
Constant:用于定义常量,一旦定义就不能被改变,可以注入到.config()方法中。
Value:用来定义值,可以修改,不能注入到config()方法当中。
页面上什么也没有:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Service</title> <script src="js/angular.min.js"></script> <script src="js/service_test.js"></script></head><body ><div ng-app="myApp" ng-controller="myCtrl"> <div>{{text}}</div></div></body></html>
对应的JS(service_test.js)文件:
angular.module('myApp',[]) .config(function(myproviderProvider,myConstant){ //使用 alert(myproviderProvider.name); alert(myConstant); //myproviderProvider.$get(); }) .run(function(){}) .controller('myCtrl',function($scope,service,factory,myprovider,myValue){ $scope.text = 'text'; alert('controller'); service.pop(); factory.pop(); myprovider.pop(); alert(myValue); myValue = '修改后的值'; alert(myValue); }) .service('service',function($timeout){ this.pop = function (){ $timeout(function(){ alert('service'); },1000); }; }) .factory('factory',function($timeout){ var gc = { pop : function(){ $timeout(function(){ alert('factory'); },2000) } }; return gc; }) .provider('myprovider',function(){ this.name = '提供者'; this.$get = function($timeout){ var tg = { pop : function(){ $timeout(function(){ alert('provider'); },2000) } }; return tg; } }) .constant('myConstant','常量不可变') .value('myValue','值');
0 0
- AngularJs 服务区别小Demo
- angularjs模型小demo
- angularJs路由小Demo
- AngularJs几种服务区别
- angularJs demo
- angularJS各种自定义服务的区别
- Android Service(服务)绑定远程服务一个小demo
- angularjs 服务
- AngularJs服务
- AngularJS 服务
- AngularJS服务
- AngularJs服务
- AngularJS 服务
- angularjs->服务
- angularjs服务
- angularjs-服务
- AngularJS 服务
- angularjs服务
- Android App调用C# WebService接口
- iOS开发:UIKit动画
- 大家来聊JSP
- C语言基础--条件编译
- 将ppt转换成word格式的简单方法分享
- AngularJs 服务区别小Demo
- xib里,scrollView的约束问题
- angular2 + nodejs+ express+ webpack+echart
- select、epoll模型概念
- Android渗透工具之Drozer源码分析
- IOS开发-从网络获取图片并显示
- JavaScript 表单的制作
- chrome自动填表会遮挡input中背景图的问题解决方法
- MyBatis入门