服务和 $location 地址
服务(Service)
- 服务是一个对象或函数,对外提供特定的功能。我们要学习的就是这些服务当中给我们提供了哪些功能,这些功能的作用分别是什么
- 常见的内置服务
- $location
- $timeout
- $filter
- $log
- $http
- 同时还支持多种快捷方式如 $http.get(),$http.post(),$http.jsonp
**$location 地址 **
- 一个完整的 url 包括以下几部分
- 1.协议部分:该 url 的协议部分为 "http:",这代表网页使用的是 HTTP 协议。在 Internet 中可以使用多种协议,如 http.ftp 等等。http 后面的 // 为分隔符
- 2.域名部分:该 url 的域名部分为 www.520it.com. 一个 url 中,也可以使用 IP 地址作为域名使用
- 3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个 url 必须1的部分,如果省略端口部分,将采用默认端口
- 4.虚拟目录部分:从域名后的第一个"/"开始到最后一个"/"为止,是虚拟目录部分。虚拟目录也不是一个 url 必须的部分。
- 5.文件名部分:
- 从域名后的最后一个/开始到?为止是文件名部分
- 如果没有“?”,则是从域名后的最后一个/开始到#为止,是文件部分
- 如果没有?和#,那么从域名后的最后一个/开始到结束,都是文件名部分
- 文件名部分也不是一个 url 必须的部分,如果省略该部分,则使用默认的文件名
- 6.锚部分:从#开始到最后都是锚部分。#在一个页面中定位使用(hash)锚部分也不是一个 Url 必须的部分
- 7.参数部分:从‘?’开始到‘#’位置之间的部分为参数部分,又称搜索部分、查询部分。参数可以允许又多个参数,参数与参数之间用“&”作为分隔符
$location 服务
js 中 location 的含义
- location 对象存储在 window 对象的 location 属性中,表示哪个窗口中当前显示的文档的 web 地址,它的 href 属性存放的是文档的完整 url,其他属性则分别描述了 url 各个部分,当一个 location 对象被转换成字符串,href 属性的值返回。这意味着你可以使用表达式 location 来提到 Location.href
js 中 location 对象属性
hash
设置或返回从#开始的 url 。开始的如果地址里没有#,则返回空字符串host
设置或返回主机名和当前 url 的端口号hostname
设置或返回当前的 url 的主机名href
设置或返回完整的 url。 在浏览器的地址栏上怎显示它就怎么返回
-pathname
设置或返回当前 url 路径部分port
设置或返回当前 Url 的端口号protocol
设置或返回当前 url 的协议(http)search
设置或返回从?开始的 url 部分$location 服务解析在浏览器地址栏中的 url,并且让 Url 在你的应用中可用
$location.host()
$location.ablUrl() 获取绝对路径
$location.protocol()
$location.port()
$location.path()
$location.hash
$location.search
$timeout 和 $interval 服务
<body ng-app='app' ng-controller='xmgController'>
<p ng-bind='dateTime | date:'yyyy-MM-dd hh:mm:ss Z''>
<button ng-click="stop()">停止计时</button>
</p>
</body>
<script src ='js/angular.js'></script>
<script>
var app = angular.module('app',[]);
app.controller('xmgController',['$scope','$timeout','interval',function($scope,$timeout,$interval){
$scope.name = 'sk';
$timeout(function(){
$scope.name = 'v587';
},3000);
$scope.dateTime = new Date();
var timer = $interval(function(){
$scope.dateTime = new Date();
},1000)
$scope.stop = function(){
$interval.cansel(timer);
}
}])
</script>
$filter 服务
<body ng-app="app" ng-controller="xmgController">
<!--<p ng-bind="nowTime | date:'yyyy-MM-dd hh:mm:ss Z'"></p>-->
<p ng-bind="nowTime"></p>
<p ng-bind="str"></p>
</body>
<script src="js/angular.js"></script>
<script>
//1.创建模块
var app = angular.module('app', []);
//2.创建控制器
app.controller('xmgController', ['$scope', '$filter', function ($scope, $filter) {
//2.1 日期过滤
$scope.nowTime = new Date();
//指定过滤器
//日期过滤器 $filter('date'), 货币过滤器 $filter('currency')
var dateFilter = $filter('date');
//进行过滤, 指定格式
$scope.nowTime = dateFilter($scope.nowTime = new Date(), 'yyyy-MM-dd');
//2.2 大写过滤
$scope.str = "xmg";
$scope.str = $filter('uppercase')($scope.str);
}]);
//3.绑定模块 ng-app="app"
//4.绑定控制器 ng-controller="xmgController"
</script>