Angularjs 自定义服务的三种方式(推荐)
程序员文章站
2022-11-19 19:34:51
angularjs简介:
angularjs 通过新的属性和表达式扩展了 html。
angularjs 可以构建一个单一页面应用程序(spas:single...
angularjs简介:
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 自定义服务的三种方式小结,希望对大家有所帮助