千家信息网

Angular Service入门

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,1.Angular内置serviceAngular为了方便开发者开发,本身提供了非常多的内置服务。可以通过https://docs.angularjs.org/api/ng/service查看Angu
千家信息网最后更新 2026年11月01日Angular Service入门
1.Angular内置service

Angular为了方便开发者开发,本身提供了非常多的内置服务。可以通过https://docs.angularjs.org/api/ng/service查看AngularJS提供的内置服务。在企业级开发中,常用的服务有以下这些:

  • $cacheFactory 缓存服务

  • $compile 编译服务

  • $filter 通过 $filter 服务可以格式化输出数据,也可以对数据进行过滤操作

  • $http AngularJS内置的核心的服务,主要和后台请求相关

  • $location 基于_window.location的Angular版本,功能更强大。比如路由地址的切换: $location.path('/home')

  • $log 开发过程中用到的多,输入错误和调试日志。和Chrome浏览器的console.log()、console.debug()等类似

  • $q 服务主要是用于异步函数返回一个promise,在路由中resovle属性用的较多

  • $rootScope 一个应用只有一个 $rootScope,该服务可以用于每个页面都需要使用的公共数据或者变量,但是开发过程中,建议尽量少用 $rootScope,调试起来不方便。因为它是一个全局变量。

2.Angular自定义Service

可以通过多种方式方式定义Service,常用的使用factory来定义一个service。代码如下:

app.factory('dataService', function () {    var appVerison = "1.0";    var showVersion = function () {        return appVerison;    };    return {        appTitle: "Decorators Demo",        showVersion: showVersion    }});
3.在控制器之间共享数据使用Service

控制器和控制器之间共享数据也有多种方式,将变量或者函数绑定$rootScope是一种常见的方式,但是不推荐。常见的情况是使用Service来共享多个controller之间的数据。一个记录图书阅读的系统,需要记录最后一次编辑的图书信息。
在BooksController.js里面读取currentUser服务,在编辑的页面给currentUser服务里面的lastBookEdited对象赋值。

定义currentUser服务

angular.module('app')    .factory('currentUser', function () {        var lastBookEdited = {};        return {            lastBookEdited: lastBookEdited        }            });

在EditController.js

dataService.getBookByID($routeParams.bookId)            .then(function (response) {                vm.currentBook = response;//将当前编辑的图书对象赋值给lastBookEdited                currentUser.lastBookEdited=vm.currentBook;属性            })            .catch(function (response) {                $log.error(response);            });

BooksController.js

vm.currentUser=currentUser;

模板books.html

`books`.`summaryData`.`bookCount` Books -- `books`.`summaryData`.`readerCount` Readers -- `books`.`summaryData`.`grandTotalMinutes` Total Minutes Read
4.Decorators(修饰)在Angular Service的使用

在实际开发过程中,我们需要对自己的服务进行增加一下方法,或者对引入的第三方服务增加一下方法,开发者可以不需要修改之前的源代码,而是可以在运行时为Service增加方法。这里需要用到Decorator-修饰。修饰模式是软件设计里面一种经典设计模式,在高级的面向对象语言,比如Java、C#等都有实现。AngularJS代码举例:

var app = angular.module('app', []);app.controller('MainCtrl', function ($scope, dataService) {    $scope.app = dataService;});app.factory('dataService', function () {    var appVerison = "1.0";    var showVersion = function () {        return appVerison;    };    return {        appTitle: "Decorators Demo",        showVersion: showVersion    }});app.config(function ($provide) {    $provide.decorator('dataService', function ($delegate) {        $delegate.sayHello = function () {            return "a new function of 'dataService'";        };        return $delegate;    });});


服务 开发 数据 方式 之间 变量 图书 对象 控制器 方法 过程 控制 代码 函数 可以通过 多种 属性 常用 常见 开发者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手冲咖啡和咖啡机区别 互联网科技未来 与互联网科技公司 壹账通互联网科技 科技创新互联网企业 互联网科技上市公司 西藏七维空间互联网科技有限公司 互联网科技中介 阿里互联网科技公司 互联网经济与金融科技 宁夏科技产业互联网案例 杭州壁岐互联网科技有限公司 注册互联网科技公司经营范围大全 电子科技大学互联网创业大赛 中国科技创新与世界互联网大会 洛阳共同富裕互联网科技有限公司 西安有哪些互联网高科技企业 抖集互联网科技技术咨询 昆明中奇联合互联网科技 黑龙江互联网科技公司 咖啡网 深圳恒合互联网络科技有限公司 科技平台互联网 互联网金融监管科技数据 金融科技创新监管互联网金融 苏州五指互联网络科技有限 互联网方面的科技前沿 浙南科技城互联网大厦招聘 华人运通互联网科技公司 平安好医生打造互联网科技医疗
0