亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

(10)AngularJS 1.X 之常用服務

2024-04-27 15:15:38
字體:
來源:轉載
供稿:網友

引言常用服務的使用1scope和rootScope服務的使用11 scope服務的使用12 rootscope服務的使用13 全局服務注入到其他方法中apPRun方法2 http服務的使用21 httpget方法的使用22 httppost方法的使用3 location服務的使用31 host方法的使用32 url方法的使用33 path方法的使用34 replace方法的使用注意和path的區別replace方法是不可以后退的path是可以后退的4 cacheFactory服務的使用5 timeout服務和interval服務的使用6 sce服務的使用61 sce服務的使用

1.引言

      在本博客中主要介紹一下服務的使用,AngularJS已經給我們提供的服務,AngularJS給我們提供的服務主要分為兩大類:

具有provider供應商的服務不具有provider供應商的服務

那么這兩種服務有什么區別呢?具有供應商的服務可以通過config方法配置我們的服務屬性,不具有供應商的服務是不可以通過config配置屬性的。還有的服務的作用域是不一樣的。舉個例子:比如$scope服務,作用域是控制器范圍內的,所以$scope服務只能注入到控制器中,還有的服務是全局范圍的,可以注入到更多的方法中,比如$filter服務。接下來我們就來介紹幾個比較常用的服務,其中有:$scope,$rootScope,$http,$location,$cacheFactory,$timeout,$interval,$sce。

2 常用服務的使用

2.1.$scope$rootScope服務的使用

      在最初使用控制器的時候,我們第一次接觸$scope服務,我們可以使用$scope服務給某一個控制器設置變量,也就是說我們使用$scope設置的變量是局部的,是屬于控制器范圍的,如果我們想設置全局范圍的變量,那么我們可以使用$rootScope服務,其次$scope是沒有供應商的,但是$rootScope是具有供應商的,也就是說$scope服務僅僅可以注入到我們的控制器中,但是$rootScope服務是可以注入到多種方法當中。接下來我們就用實例來看一下這兩個服務的具體使用。

2.1.1 $scope服務的使用

首先我們創建一個控制器(然后將$scope注入到控制器中) var app=angular.module("myApp",[]); app.controller("firstController", function ($scope) { $scope.name="hello world" })創建我們的html片段<body> <div ng-controller="firstController">{{name}}</div></body>運行結果

這里寫圖片描述

2.1.2 $rootscope服務的使用

      使用$rootscope服務我們可以設置我們的全部變量,$rootscope同樣可以注冊到我們的 控制器中,但是和$scope相比而言,$rootscope服務所創造的變量不是局限于控制器作用域中。

首先我們創建我們的控制器var app=angular.module("myApp",[]); app.controller("firstController", function ($scope,$rootScope) { $scope.name="hello $scope"; $rootScope.name="hello $rootScope" })創建我們的html片段(注意:一個name屬性是在控制器中,一個name屬性沒有在控制器作用域)<body> <div ng-controller="firstController">{{name}}</div> {{name}}</body>運行結果

這里寫圖片描述

2.1.3 全局服務注入到其他方法中(app.run方法)

      在前面我們說過,服務分為兩種,服務的作用域是不一樣的,一些全局的作用域服務可以通過run 方法初始化全局的數據 ,只對全局作用域起作用 如$rootScope服務,

通過run方法注入全局變量 var app=angular.module("myApp",[]); app.run(function($rootScope){ $rootScope.name="hello $rootScope"; })html片段<body> {{name}}</body>運行結果

這里寫圖片描述

我們說過只可以將具有供應商的服務注入到其他方法中,如果我們將沒有供應商的服務注入到其他方法中會出現什么情況呢?以$scope為例,我們看一看(錯誤代碼) var app=angular.module("myApp",[]); app.run(function($scope){ $scope.name="hello $rootScope"; })程序錯誤:找不到供應商

這里寫圖片描述

2.2 $http服務的使用

      關于$http服務的使用主要用于Ajax的實現,其中$http服務主要有三種方法get,post,jsonp。

get:用于get請求post:用于post請求jsonp:用于jsonp請求

在這里我們主要演示一下get方法和post方法的使用。

創建一下我們的json文件(person.json)[{ "name":"wpx", "age":"20"},{ "name":"zlr", "age":"22"}]

2.2.1 $http.get方法的使用

直接使用get方法發送請求(get方法的第一個參數是url,第二個參數是向服務器傳的參數) //控制器 var app=angular.module("myApp",[]); app.controller("firstController",function($scope,$http){ $scope.get=function(){ $http.get("person.json",{params:{name:"wpx"}}).then(function (result) { console.log(result.data) }) } }) //html標簽 <div ng-controller="firstController"> <button ng-click="get();">發送請求</button> </div>使用參數列表發送get請求(params會生成到url后面,get請求) var app=angular.module("myApp",[]); app.controller("firstController",function($scope,$http){ $scope.get=function(){ $http({ url:"person.json", params:{ id:10 }, method : 'GET', }).then(function (result) { console.log(result.data) }) } }) //html標簽 <div ng-controller="firstController"> <button ng-click="get();">發送請求</button> </div>代碼運行發送的url

這里寫圖片描述

2.2.2 $http.post方法的使用

直接使用post方法發送請求(post方法的第一個參數是url,第二個參數是向服務器傳的參數) var app=angular.module("myApp",[]); app.controller("firstController",function($scope,$http){ $scope.get=function(){ $http.post("person.json",{ "id":"wpx" }).then(function (result) { console.log(result.data) }) } }) //html標簽 <div ng-controller="firstController"> <button ng-click="get();">發送請求</button> </div>使用參數列表發送POST請求(注意:請求體用的data參數) var app=angular.module("myApp",[]); app.controller("firstController",function($scope,$http){ $scope.get=function(){ $http({ url:"person.json", method:"POST", data:{ id:"wpx" } }).then(function (result) { console.log(result.data) }) } }) //html標簽 <div ng-controller="firstController"> <button ng-click="get();">發送請求</button> </div>使用該方法發送的url

這里寫圖片描述

2.3 $location服務的使用

      $location服務解析地址欄中的 URL(基于 window.location),讓你在應用代碼中 能獲取到。改變地址欄中的 URL 會反應$location 服務中,反之亦然。在這里主要介紹$location服務的幾種方法。

host():返回url中的主機路徑path():用于改變網頁的urlreplace():可以控制是否有返回鍵 url():改變主機的url

2.3.1 host()方法的使用

代碼實現 var app=angular.module("myApp",[]); app.controller("firstController",function($location){ console.log($location.host()); })運行結果

這里寫圖片描述

2.3.2 url方法的使用

代碼實現 var app=angular.module("myApp",[]); app.controller("firstController",function($location){ $location.url("/hello"); })運行結果 (在url后面添加了#!/hello

這里寫圖片描述

這里寫圖片描述

2.3.3 path方法的使用

代碼實現 var app=angular.module("myApp",[]); app.controller("firstController",function($location){ $location.path('/hello') })運行結果(只是在url結果添加了#!/hello

這里寫圖片描述

這里寫圖片描述

2.3.4 replace方法的使用(注意和path的區別,replace方法是不可以后退的,path是可以后退的)

代碼實現 var app=angular.module("myApp",[]); app.controller("firstController",function($location){ $location.path('/hello').replace() })運行結果

這里寫圖片描述

這里寫圖片描述

2.4 $cacheFactory服務的使用

      關于$cacheFactory服務的使用,是緩存的實現,一般用到該服務可以實現多個控制器之間的數據共享,比如在控制器A中存入緩存,然后在控制器B中獲得緩存的數據,接下來我們就來看一下這個功能怎么實現。

代碼實現 var app=angular.module("myApp",[]); app.controller("A",function($scope,$cacheFactory){ $scope.add= function () { //新建一個名字為myCache的緩存 var cache = $cacheFactory('myCache'); cache.put('name','hello'); } }) app.controller("B",function($scope,$cacheFactory){ $scope.get= function () { //獲取到緩存對象 var cache = $cacheFactory.get('myCache'); //獲取鍵值對 var name1=cache.get('name') //獲取鍵值對 var name2=cache.get('name') //移除鍵值對 cache.remove('name') //獲取鍵值對 var name3=cache.get('name') console.log(name1); console.log(name2); console.log(name3); } }) //html的實現 <div ng-controller="A"> <button ng-click="add();">添加數據</button> </div> <div ng-controller="B"> <button ng-click="get();">獲得數據</button> </div>運行結果

這里寫圖片描述

2.5 $timeout服務和$interval服務的使用

      關于$timeout服務和$interval服務的使用類似于js中的代碼setTimeout()setInterval()方法類似,$timeout服務是一定時間之后執行一次代碼,$interval服務是一定時間間隔之后執行一次代碼,接下來我們看一下這兩個服務如何使用。

代碼實現 var app=angular.module("myApp",[]); app.controller("A",function($timeout,$interval){ //一秒鐘之后執行一次 $timeout(function(){ console.log("$timeout"); },1000); //每間隔一秒鐘執行一次 $interval(function () { console.log("$interval"+new Date().toString()); },1000) })運行結果

這里寫圖片描述

2.6 $sce服務的使用

      在前面我們使用過ngSanitize插件,$sce服務和ngSanitize插件的作用差不多,該服務也用于解析html的,接下來我們就來使用一下該服務。

2.6.1 $sce服務的使用

* 創建我們的控制器

var app=angular.module("myApp",[]); app.controller("firstController",function($scope,$sce){ $scope.text=$sce.trustAsHtml("<h1>AAAA</h1>") })創建html片段 <div ng-controller="firstController"> <div ng-bind-html="text"></div> </div>運行結果

這里寫圖片描述


上一篇:z-index詳解

下一篇:html base

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲毛片在线观看| 国产精品成人aaaaa网站| 欧美在线一区二区视频| 久久久免费观看视频| 国产精品亚洲片夜色在线| 亚洲成人激情在线观看| 97视频在线观看免费高清完整版在线观看| 亚洲视频777| 国产日韩欧美电影在线观看| 在线成人激情视频| 成人精品福利视频| 亚洲激情中文字幕| 992tv成人免费影院| 欧美一区二区三区免费观看| 欧美综合一区第一页| 精品视频www| 亚洲成人精品视频在线观看| 日韩一区二区久久久| 欧美在线影院在线视频| 国产欧美精品一区二区三区介绍| 成人欧美在线视频| 日韩电影视频免费| 久久人人爽亚洲精品天堂| 国产精品毛片a∨一区二区三区|国| 国产精品久久久久影院日本| 久久久久久久电影一区| 91夜夜未满十八勿入爽爽影院| 欧美在线视频一区| 理论片在线不卡免费观看| 亚洲毛片在线观看.| 国产视频一区在线| 欧美人与性动交a欧美精品| 欧美三级欧美成人高清www| 国产一区二区日韩| 久久精品免费播放| 高清欧美电影在线| 国产不卡在线观看| 久久久亚洲网站| 久久精品国产久精国产一老狼| 欧美精品在线视频观看| 国产精品旅馆在线| 久久99国产精品久久久久久久久| 欧美日韩国产精品专区| 8050国产精品久久久久久| 久久国产精品久久久| 成人一区二区电影| 国产精品自在线| 一区二区在线视频| 清纯唯美亚洲激情| 久热爱精品视频线路一| 国产在线精品自拍| 亚洲黄页视频免费观看| 一区二区三区亚洲| 欧美黄色小视频| 中文字幕久热精品视频在线| 国产精品jizz在线观看麻豆| 亚洲人av在线影院| 欧美在线视频一二三| 国产精品免费福利| 亚洲精品久久久一区二区三区| 精品国产区一区二区三区在线观看| 亚洲欧洲在线看| 91av在线免费观看视频| 日韩精品视频在线| 亚洲tv在线观看| 亚洲高清不卡av| 久久成年人免费电影| 国产中文字幕亚洲| 国产精品18久久久久久首页狼| 亚洲精品自在久久| 亚洲jizzjizz日本少妇| 中文在线资源观看视频网站免费不卡| 97涩涩爰在线观看亚洲| 亚洲精品wwwww| 在线观看欧美成人| 欧美疯狂做受xxxx高潮| 日韩av影视在线| 麻豆国产精品va在线观看不卡| 77777少妇光屁股久久一区| 在线精品高清中文字幕| 国语自产精品视频在线看抢先版图片| 成人黄色av网站| 欧美极品少妇xxxxx| 亚洲在线免费视频| 91精品国产高清久久久久久91| 国产精品黄页免费高清在线观看| 久久久久久一区二区三区| 亚洲大胆人体视频| 日韩在线视频免费观看| 欧洲美女7788成人免费视频| 欧美午夜影院在线视频| 欧美国产视频日韩| 亚洲成人黄色在线观看| 亚洲成人黄色在线观看| 午夜免费在线观看精品视频| 亚洲视频在线播放| 亚洲黄色有码视频| 亚洲香蕉在线观看| 成人国产精品日本在线| 欧美日韩在线第一页| 中文字幕无线精品亚洲乱码一区| 欧美日韩亚洲一区二区| 色琪琪综合男人的天堂aⅴ视频| 亚洲欧美综合区自拍另类| 欧美wwwwww| 97婷婷涩涩精品一区| 91大神在线播放精品| 亚洲最大福利网站| 亚洲一区二区国产| 亚洲美女免费精品视频在线观看| 国产精品久久久久久久久久久不卡| 欧美日韩中文字幕综合视频| 97免费视频在线| 欧洲精品毛片网站| 国产成人高清激情视频在线观看| 国产精品永久在线| 欧美一级黑人aaaaaaa做受| 欧亚精品在线观看| 777国产偷窥盗摄精品视频| 高清亚洲成在人网站天堂| 久久国产精品久久久久久久久久| 视频在线观看一区二区| 国产女人18毛片水18精品| 成人春色激情网| 欧美激情欧美激情在线五月| 日韩黄色在线免费观看| 欧美亚洲国产另类| 亚洲男人第一网站| 欧美激情一区二区三区在线视频观看| 国产丝袜一区视频在线观看| 欧美精品aaa| 一本色道久久88综合日韩精品| 久久久久国产一区二区三区| 日韩欧美精品中文字幕| 91国产精品91| 中文字幕少妇一区二区三区| 欧美午夜www高清视频| 久久九九国产精品怡红院| 亚洲国产毛片完整版| 欧美激情综合色综合啪啪五月| 亚洲欧美国产日韩中文字幕| 成年无码av片在线| 亚洲色图欧美制服丝袜另类第一页| 欧美亚洲视频一区二区| 国产精品一区二区三区毛片淫片| 青草成人免费视频| 日韩女在线观看| 一本色道久久88亚洲综合88| 日本国产欧美一区二区三区| 国产aaa精品| 欧美小视频在线| 国产精品一区二区三区毛片淫片| 亚洲欧美国产另类| 日韩av影院在线观看| 欧美老妇交乱视频| 精品国产区一区二区三区在线观看| 欧美性xxxxxxx| 91精品久久久久久久久青青| 国产乱肥老妇国产一区二| 91夜夜未满十八勿入爽爽影院| 91精品综合久久久久久五月天| 亚洲高清免费观看高清完整版| 欧美色videos| 日韩在线小视频|