Angularjs 自定义服务的三种方式(推荐)
阿 紫 人气:0AngularJS简介:
AngularJS 通过新的属性和表达式扩展了 HTML。
AngularJS 可以构建一个单一页面应用程序(SPAs:Single Page Applications)。
AngularJS 学习起来非常简单。
angularjs 中可通过三种($provider,$factory,$service)方式自定义服务,以下是不同的实现形式:
// 定义module , module中注入$provide var starterApp = angular.module('starter.controllers', [],function($provide){ // 第一种方式:使用provide的provider自定义服务 $provide.provider('getUserInfoService', function(){ this.$get = function(){ var userInfo = [{ 'userName':'张三0', 'userNick':'小花0', 'age':25 },{ 'userName':'张三1', 'userNick':'小花1', 'age':26 }]; return userInfo; } }); $provide.factory('',function(){}); $provide.service('',function(){}); }); //第二种方式 (module 的 config 方法中注入 $provide) starterApp.config(['$provide',function($provide) { // 使用provide的provider自定义服务(返回对象,字符串,服务,且必须通过$get方法返回) $provide.provider('getUserAddressService', function(){ var _userAddress = ''; var service = {}; this.$get = function(){ service.setAddress = function (userAddress){ _userAddress = userAddress; } service.getAddress = function (){ return _userAddress; } return service; } }); // 使用provide的factory自定义服务(返回对象,服务,字符串) $provide.factory('serviceName1', ['$http', function($http){ // var service = {}; // service.getName = function (){ // return '张三'; // } // return service; // return "啊飒飒大"; }]); // 使用provide的service自定义服务(返回对象,服务) $provide.service('serviceName2', ['$http', function($http){ // return { // 'name':'aa' // }; //可直接通过this定义方法 this.getName = function (){ return '张三'; } }]) }]); //第三种方式(module 的 provider、service、factory 方法 推荐第三种) starterApp.provider('serviceName3',function(){ this.$get = function (){ return '直接通过module的provider方法定义服务'; } }); starterApp.factory('serviceName4',function(){ return '直接通过module的factory方法定义服务'; }); starterApp.service('serviceName5',function(){ return { 'message':'直接通过module的service方法定义服务' } });
以上所述是小编给大家介绍的Angularjs 自定义服务的三种方式小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
加载全部内容