AngularJS学习篇(八)
AngularJS 服务(Service)
在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用。
AngularJS 内建了30 多个服务。
为什么使用服务?
在很多服务中,比如 $location 服务,它可以使用 DOM 中存在的对象,类似 window.location 对象
因为这些服务可以获取到Angular应用声明周期的每一个阶段,并且和$watch整合,让Angular可以监控应用,处理事件变化。普通的DOM对象则不能在Angular应用声明周期中和应用整合。
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <script src="angular-1.6.3/angular.js"></script>
- </head>
- <body>
- <div ng-app="myApp" ng-controller="myCtrl">
- <div ng-app="myApp" ng-controller="myCtrl">
- <p>现在时间是:</p>
- <h1>{{theTime}}</h1>
- </div>
- <p>$interval 访问在指定的周期(以毫秒计)来调用函数或计算表达式。</p>
- </div>
- <script>
- var app = angular.module('myApp', []);
- app.controller('myCtrl', function($scope,$interval) {
- $scope.theTime = new Date().toLocaleTimeString();
- $interval(function () {
- $scope.theTime= new Date().toLocaleTimeString();
- },1000);
- });
- </script>
- </body>
- </html>
创建自定义服务
你可以创建访问自定义服务,链接到你的模块中:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <script src="angular-1.6.3/angular.js"></script>
- </head>
- <body>
- <div ng-app="myApp" ng-controller="myCtrl">
- <p>255 的16进制是:</p>
- <h1>{{hex}}</h1>
- </div>
- <p>自定义服务,用于转换16进制数:</p>
- <script>
- var app = angular.module('myApp', []);
- app.service('heaxfy',function () {
- this.myFunc = function (x) {
- return x.toString(16);
- }
- });
- app.controller('myCtrl', function($scope,heaxfy) {
- $scope.hex = heaxfy.myFunc(255);
- });
- </script>
- </body>
- </html>
$watch:持续监听数据上的变化,更新界面,如:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <script src="angular-1.6.3/angular.js"></script>
- </head>
- <body>
- <div ng-app="myApp" ng-controller="myCtrl">
- <b>请输入姓名:</b><br>
- <b>姓:</b><input type="text" ng-model="lastName"><br>
- <b>名:</b><input type="text" ng-model="firstName"><br>
- <h1>{{ lastName + " " + firstName }}</h1>
- <h2>{{ fullName }}</h2>
- </div>
- <script>
- var app = angular.module('myApp', []);
- app.controller('myCtrl', function($scope) {
- $scope.lastName = "";
- $scope.firstName = "";
- //监听lastName的变化,更新fullName
- $scope.$watch('lastName', function() {
- $scope.fullName = $scope.lastName + " " + $scope.firstName;
- });
- //监听firstName的变化,更新fullName
- $scope.$watch('firstName', function() {
- $scope.fullName = $scope.lastName + " " + $scope.firstName;
- });
- });
- </script>
- </body>
- </html>
AngularJS学习篇(八)的更多相关文章
- AngularJS学习篇(十八)
AngularJS API AngularJS 全局 API 用于执行常见任务的 JavaScript 函数集合,如: 比较对象 迭代对象 转换对象 全局 API 函数使用 angular 对象进行访 ...
- AngularJS学习篇(二十四)
AngularJS 应用 <html ng-app="myNoteApp"> <head> <meta charset="utf-8&quo ...
- AngularJS学习篇(二十三)
AngularJS 路由 AngularJS 路由允许我们通过不同的 URL 访问不同的内容. 通过 AngularJS 可以实现多视图的单页Web应用(single page web applica ...
- AngularJS学习篇(二十二)
AngularJS 依赖注入 什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或 ...
- AngularJS学习篇(二十一)
AngularJS 动画 AngularJS 提供了动画效果,可以配合 CSS 使用. AngularJS 使用动画需要引入 angular-animate.min.js 库. <!doctyp ...
- AngularJS学习篇(二十)
AngularJS 包含 在 AngularJS 中,你可以在 HTML 中包含 HTML 文件. 使用 AngularJS, 你可以使用 ng-include 指令来包含 HTML 内容: < ...
- AngularJS学习篇(十九)
AngularJS Bootstrap 可以在你的 AngularJS 应用中加入 Twitter Bootstrap,你可以在你的 <head>元素中添加如下代码: <link r ...
- AngularJS学习篇(十七)
AngularJS 输入验证 <!DOCTYPE html> <html> <script src="http://apps.bdimg.com/libs/an ...
- AngularJS学习篇(十六)
AngularJS 表单 HTML 控件 以下 HTML input 元素被称为 HTML 控件: input 元素 select 元素 button 元素 textarea 元素 HTML 表单 H ...
随机推荐
- C++代码使用 CppUnit 进行单元检测
CppUnit是一个很方便的对C++代码进行单元检测的工具. 如何编译CppUnit参照博客:http://blog.csdn.net/x_iya/article/details/8433716 该博 ...
- 进入css3动画世界(一)
其实我做css3动画也没有多久,这篇文章目标人群是css3动画的新手,不喜勿喷. 分类 目前我接触到的css3动画有2类:一种是transition的,另一种是@keyframes的. 两者的区别就是 ...
- 针对Openlayer3官网例子的简介
网址:http://openlayers.org/en/latest/examples/ 如果大家想了解ol3能做什么,或者说已提供的API有什么,又闲一个个翻例子跟API累的话,就看看这个吧. 1. ...
- P1035
P1035 时间限制: 1 Sec 内存限制: 128 MB提交: 87 解决: 36[提交][状态][讨论版] 题目描述 给出一张n*n(n< =100)的国际象棋棋盘,其中被删除了一些点 ...
- myeclipse的快捷键
------------------------------------MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+1 ...
- HDU1285 确定比赛名次
有N个比赛队(<=N<=),编号依次为1,,,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结 ...
- C#一款比较美观的验证码
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...
- ceph在品高云中的实践
ceph简介 ceph是业界目前人气最高的开源存储项目之一,关于其定义在官网是这样的:"Ceph is a unified, distributed storage system desig ...
- Vue中之nextTick函数源码分析
Vue中之nextTick函数源码分析 1. 什么是Vue.nextTick()?官方文档解释如下:在下次DOM更新循环结束之后执行的延迟回调.在修改数据之后立即使用这个方法,获取更新后的DOM. 2 ...
- CSS盒子模型之详解
前言: 盒子模型是css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局.一.css盒子模型概念 CSS盒子模型 又称框模型 (Box Model) ,包含了元 ...