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

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

(13)AngularJS 1.X 之ngRoute插件

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

引言路由控制頁面的跳轉1 主頁面控制頁面的跳轉在頁面后面添加div12 頁面替換自身位置借助location服務在頁面后面添加div1路由跳轉傳遞參數路由事件1 代碼實現2 結果分析

1.引言

      AngularJS路由功能是一個純前端的解決方案,與我們熟悉的后臺路由不太一樣。 后臺路由:通過不同的 URL 會路由到不同的控制器上(controller),再渲染(render)到頁面(HTML)。AngularJS 的前端路由:需要提前對指定的(ng-app),定義路由規則(routePRovider),然后通過不同的 URL,告訴(ng-app)加載哪個頁面(HTML),再渲染到視圖(ng-view)中。

      AngularJS 的前端路由雖然 URL 輸入不一樣,頁面展示不一樣,其實完成的就是單頁視圖(ng-view)的局部刷新。

      AngularJS路由的實現主要設計幾個方面:

ng-view指令決定數據顯示的位置使用$routeProvider供應商設置路由的配置$routeParams用于接受路由的參數路由的事件:$routeChangeStart,$routeChangeSuccess,$routeChangeError

接下來我們就來看一下上面說的幾個方面

2.路由控制頁面的跳轉

關于頁面的跳轉主要介紹兩個方面:

第一種類型的跳轉(主頁面加載頁面1,然后主頁面重新加載頁面2)

這里寫圖片描述

第二種類型的跳轉(主頁面加載頁面1,然后頁面1中跳轉到頁面2)

這里寫圖片描述

2.1 主頁面控制頁面的跳轉(在頁面后面添加#!div1

首先加載angularjs函數庫<script src="js/angular.js"></script>加載路由插件<script src="js/angular-route.js"></script>設置angular作用域<html ng-app="myApp"><head> <script src="js/angular.js"></script> <script src="js/angular-route.js"></script> <meta charset="utf-8"> </head><body></body></html>配置我們的路由供應商var app = angular.module('myApp',['ngRoute']); app.config(['$routeProvider',function($routeProvider){ $routeProvider .when('/div1',{ templateUrl : "./div1.html", controller : 'div1Controller' }) .when('/div2',{ templateUrl : "./div2.html", controller : 'div2Controller' }) .otherwise({ redirectTo : '/index.html' }); }]);修改我們的控制器app.controller('div1Controller', function($scope) { $scope.name="第一個頁面"; }); app.controller('div2Controller', function($scope) { $scope.name="第二個頁面"; }); app.controller('MainCtrl', function($scope,$location) { $scope.changUrl1= function () { $location.path("/div1"); } $scope.changUrl2= function () { $location.path("/div2"); } });編寫我們的主頁面(路由會自動查找ng-view指令)<div ng-controller="MainCtrl"> <button ng-click="changUrl1()">跳轉到第一個頁面</button> <button ng-click="changUrl2()">跳轉到第二個頁面</button> </div><div ng-view></div>編寫div1頁面(下面是div1頁面全部內容){{name}}編寫div2頁面(下面是div2頁面全部內容){{name}}運行結果

這里寫圖片描述

這里寫圖片描述

這里寫圖片描述

2.2 頁面替換自身位置(借助$location服務,在頁面后面添加#!div1

接下來我們看一下,代碼是如何實現的。

引入AngularJS函數庫(略)引入路由插件(略)設置AngularJS作用域(略)配置路由供應商 var app = angular.module('myApp',['ngRoute']); app.config(['$routeProvider',function($routeProvider){ $routeProvider .when('/div1',{ templateUrl : "div1.html", controller : 'div1Controller' }) .when('/div2',{ templateUrl : "div2.html", controller : 'div2Controller' }) .otherwise({ redirectTo : '/index.html' }); }]);設置我們的控制器 app.controller('div1Controller', function($scope,$location) { $scope.changUrl= function () { $location.path("/div2"); } }); app.controller('div2Controller', function($scope) { $scope.name="第二個頁面"; }); app.controller('MainCtrl', function($scope,$location) { $scope.changUrl= function () { $location.path("/div1"); } });設置我們主頁面(路由會自動查找ng-view指令)(主頁面的部分內容) <div ng-controller="MainCtrl"> <button ng-click="changUrl()">跳轉到第一個頁面</button> </div> <div ng-view></div>div1頁面(下面是div1頁面全部內容)<button ng-click="changUrl();">改變頁面</button>第一個頁面div2頁面(僅僅只有一個表達式){{name}}

3.路由跳轉傳遞參數

      在頁面跳轉的時候如果我們想要傳遞參數應該如何傳遞呢?在這里我們就來實現一下。

定義我們的路由(注意:路由中有一個參數id) var app = angular.module('myApp',['ngRoute']); app.config(['$routeProvider',function($routeProvider){ $routeProvider .when('/div1/:id',{ templateUrl : "./div1.html", controller : 'div1Controller' }) .otherwise({ redirectTo : '/index.html' }); }]);當我們跳轉的時候,傳遞參數,比如下面的代碼 app.controller('MainCtrl', function($scope,$location) { $scope.changUrl= function () { //在這里傳遞參數id=10 $location.path("/div1/10") } });在div1Controller獲取到參數(通過$routeParams參數) app.controller('div1Controller', function($routeParams) { alert($routeParams.id) });運行結果

這里寫圖片描述

上面我們只是傳遞一個參數。如果傳遞多個參數原理也是一樣的,我們看下面的代碼 app.config(['$routeProvider',function($routeProvider){ $routeProvider .when('/div1/:content/:id',{ templateUrl : "./div1.html", controller : 'div1Controller' }) .otherwise({ redirectTo : '/index.html' }); }]);跳轉頁面 app.controller('MainCtrl', function($scope,$location) { $scope.changUrl= function () { //在這里傳遞參數content=10,id=20 $location.path("/div1/10/20") } });接受參數 app.controller('div1Controller', function($routeParams) { alert($routeParams.id+":"+$routeParams.content) });運行結果

這里寫圖片描述

4.路由事件

      在我們路由跳轉時是有事件的,分別為:$routeChangeStart,$routeChangeSuccess,$routeChangeError,我們可以給$rootScope綁定全局的路由事件的處理函數,全局的事件綁定我們可以通過run方法來綁定,接下來我們就來看一下代碼的實現。

4.1 代碼實現

通過run配置路徑事件var app = angular.module('myApp',['ngRoute']); app.run(function ($rootScope) { $rootScope.$on('$routeChangeStart',function(event,current,pre) { console.log("$routeChangeStart") console.log(event); console.log(current); console.log(pre); }); $rootScope.$on('$routeChangeSuccess',function(event,current,pre) { console.log("$routeChangeSuccess") console.log(event); console.log(current); console.log(pre); }); })配置我們的路由app.config(['$routeProvider',function($routeProvider){ $routeProvider .when('/div1',{ templateUrl : "./div1.html", controller : 'div1Controller' }) .otherwise({ redirectTo : '/index.html' }); }]);編寫我們的控制器 app.controller('MainCtrl', function($scope,$location) { $scope.changUrl= function () { //在這里傳遞參數id=10 $location.path("/div1") } }); app.controller('div1Controller', function($routeParams) { console.log("div1Controller") });編寫我們的html頁面 <div ng-controller="MainCtrl"> <button ng-click="changUrl()">跳轉頁面</button> </div> <div ng-view></div>點擊頁面運行結果

這里寫圖片描述

4.2 結果分析

通過上面的運行結果,我們可以知道:

事件和控制器的運行熟悉:$routeChangeStart,然后$routeChangeSuccess,最后運行div1Controller。當我們觸發路由的回調函數時,回調函數中有三個參數,這三個參數帶有我們的路由信息。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美色视频日本高清在线观看| 色偷偷av一区二区三区乱| 欧美性在线视频| 日韩欧美亚洲范冰冰与中字| 国产精品视频地址| 这里只有精品视频| 国产精品美女久久| 欧美激情第99页| 国产精品久久久久久婷婷天堂| 尤物九九久久国产精品的特点| 九色精品免费永久在线| 国产精品偷伦一区二区| 中文字幕亚洲一区在线观看| 日韩av在线免费观看一区| 国产精品久久综合av爱欲tv| 欧美老女人性生活| 久久成人综合视频| 日韩精品一区二区三区第95| 亚洲精品福利资源站| 国产精品爱久久久久久久| 伊人av综合网| 国产香蕉97碰碰久久人人| 国产精品久久久久久亚洲调教| 97精品在线视频| 亚洲综合色av| 国产乱肥老妇国产一区二| 欧美日韩国产二区| 国产美女搞久久| yellow中文字幕久久| 欧美性视频在线| 久久中文精品视频| 国产精自产拍久久久久久| 欧美亚洲在线观看| 亚洲二区在线播放视频| 欧美性猛交xxxx黑人猛交| 97精品国产aⅴ7777| 亚洲第一中文字幕在线观看| 中文字幕在线看视频国产欧美在线看完整| 久久五月天综合| 亚洲少妇中文在线| 亚洲综合自拍一区| 亚洲人成电影网站| 国产精品女人网站| 国产成人91久久精品| 亚洲欧美日韩精品久久| 亚洲女人初尝黑人巨大| 色妞色视频一区二区三区四区| 日韩国产高清污视频在线观看| 亚洲少妇中文在线| 91国产精品视频在线| 成人免费自拍视频| 日本一欧美一欧美一亚洲视频| 精品久久久视频| 欧美成人激情在线| 揄拍成人国产精品视频| 日韩在线免费av| 91免费观看网站| 日本免费一区二区三区视频观看| 亚洲精品一区av在线播放| 国产精品免费一区| 亚洲网站在线看| 伊人久久久久久久久久久久久| 日韩欧美国产一区二区| 欧美性猛交丰臀xxxxx网站| 91国自产精品中文字幕亚洲| 欧美大码xxxx| 日韩在线视频免费观看| 欧美丰满片xxx777| 久久久久久久电影一区| 91精品久久久久久久久久久| 欧美亚洲激情在线| 亚洲欧美一区二区激情| 色偷偷88888欧美精品久久久| 日韩精品久久久久久久玫瑰园| 国产精品久久久久福利| 国产精品对白刺激| 亚洲一区二区在线| 136fldh精品导航福利| 亚洲欧美日韩天堂| 亚洲一区二区三区四区视频| 黄色一区二区在线| 国产视频丨精品|在线观看| 91精品国产综合久久久久久久久| 久久天天躁夜夜躁狠狠躁2022| 亚洲xxxx在线| 亚洲欧洲免费视频| 都市激情亚洲色图| 久久精品中文字幕电影| 欧美裸身视频免费观看| 亚洲一区av在线播放| 国产精品欧美日韩| 国产人妖伪娘一区91| 日韩中文在线中文网在线观看| 欧美激情国产日韩精品一区18| 成人两性免费视频| 亚洲精品国产拍免费91在线| 久久99久久久久久久噜噜| 992tv成人免费视频| 亚洲综合第一页| 91性高湖久久久久久久久_久久99| 国产日韩中文字幕在线| 亚洲性日韩精品一区二区| 日韩av在线免费| 免费99精品国产自在在线| 91精品国产91久久久久久| 日韩精品有码在线观看| 国产精品久久久久久一区二区| 欧美亚洲成人精品| 日韩欧美在线中文字幕| 97视频在线观看亚洲| 国产精品99久久久久久久久久久久| 青青在线视频一区二区三区| 国产日韩综合一区二区性色av| 亚洲va码欧洲m码| 色偷偷91综合久久噜噜| 欧美性精品220| 中文字幕国内精品| 久久综合久中文字幕青草| 精品色蜜蜜精品视频在线观看| 黑人狂躁日本妞一区二区三区| 国产在线98福利播放视频| 亚洲一区二区三区xxx视频| 欧美贵妇videos办公室| 中文字幕免费精品一区高清| 亚洲欧洲av一区二区| 欧美午夜无遮挡| 久久天堂电影网| xx视频.9999.com| 亚洲2020天天堂在线观看| 欧美日韩国产一区二区三区| 国产精品欧美一区二区三区奶水| 国产在线观看一区二区三区| 成人激情免费在线| 亚洲第一福利在线观看| 久久久噜噜噜久久久| 日韩欧美在线观看视频| 欧美久久精品一级黑人c片| 欧美日韩国产精品一区| 91福利视频在线观看| 亚洲色图50p| 岛国av一区二区| 国产欧美中文字幕| 国内精品久久久久影院 日本资源| 欧美一级在线亚洲天堂| 超在线视频97| 亚洲一区二区三区成人在线视频精品| 欧美做爰性生交视频| 日韩在线中文字幕| 日韩网站免费观看| 日韩精品极品在线观看| 亚洲欧洲在线观看| 成人中心免费视频| 日韩精品视频在线观看网址| 精品无码久久久久久国产| 精品毛片三在线观看| 韩剧1988在线观看免费完整版| 欧美成aaa人片在线观看蜜臀| 国内精品中文字幕| 国产精品99久久久久久人| 亚洲成人久久久| 最好看的2019的中文字幕视频| 91沈先生在线观看| 亚洲欧美激情四射在线日| 日韩成人在线网站|