AngularJS入門(mén)教程之多視圖切換用法示例
本文實(shí)例講述了AngularJS多視圖切換用法。分享給大家供大家參考,具體如下:
在AngularJS應(yīng)用中,我們可以將html碎片寫(xiě)在一個(gè)單獨(dú)的文件中,然后在其他頁(yè)面中將該段碎片加載進(jìn)來(lái)。如果有多個(gè)碎片文件,我們還可以在控制器中根據(jù)用戶(hù)的操作動(dòng)態(tài)的加載不同的碎片,從而達(dá)到切換視圖的效果。
先來(lái)看看筆者寫(xiě)好的一個(gè)案例吧:

這兩首詞實(shí)際上是兩個(gè)html碎片,分別寫(xiě)在page1.html和page2.html。下面是這兩個(gè)文件的內(nèi)容:
<!--page1.html內(nèi)容--> <div> <p>《南鄉(xiāng)子·登京口北固亭有懷》</p> <p>何處望神州?滿(mǎn)眼風(fēng)光北固樓。千古興亡多少事,悠悠,不盡長(zhǎng)江滾滾流。</p> <p>年少萬(wàn)兜鍪,坐斷東南戰(zhàn)未休。天下英雄誰(shuí)敵手,曹劉。生子當(dāng)如孫仲謀。</p> </div>
<!--page2.html內(nèi)容--> <div> <p>《蝶戀花》</p> <p>佇倚危樓風(fēng)細(xì)細(xì),望極春愁,黯黯生天際。草色煙光殘照里,無(wú)言誰(shuí)會(huì)憑闌意。</p> <p>擬把疏狂圖一醉,對(duì)酒當(dāng)歌,強(qiáng)樂(lè)還無(wú)味。衣帶漸寬終不悔,為伊消得人憔悴。</p> </div>
接下來(lái)我們看看如何實(shí)現(xiàn)這兩個(gè)碎片的切換。
<!DOCTYPE html>
<html ng-app="routeMod">
<head lang="en">
<meta charset="UTF-8">
<script type="text/javascript" src="angular-1.3.0.14/angular.js"></script>
<script type="text/javascript" src="angular-1.3.0.14/angular-route.js"></script>
<link type="text/css" href="css/tutorial07.css" rel="stylesheet">
<title>tutorial07.html</title>
</head>
<body>
<header>
Header
</header>
<div id="content" ng-controller="MultiViewController">
<div id="myView" ng-view="myView" ng-init="init()">
</div>
<div id="btnDiv">
<button ng-click="prePage()">上一頁(yè)</button>
<button ng-click="nextPage()">下一頁(yè)</button>
</div>
</div>
<footer>
Copyright:Rongbo_J
</footer>
<script>
var routeMod = angular.module('routeMod', ['ngRoute']);
routeMod.config(['$routeProvider',function($routeProvider){
$routeProvider.when('/1',{
templateUrl:'tutorial07/page1.html',
controller:'MultiViewController'
})
.when('/2',{
templateUrl:'tutorial07/page2.html',
controller:'MultiViewController'
})
}])
routeMod.controller("MultiViewController",function($scope,$log,$location){
$scope.init = function () {
$location.path("/1");
}
$scope.prePage = function () {
$log.info("prePage");
$location.path("/1");
};
$scope.nextPage = function () {
$log.info("nextPage");
$location.path("/2");
};
});
</script>
</body>
</html>
這里我們需要用到AngularJs的路由模塊ngRoute,模塊代碼封裝在angular-route.js文件,和上節(jié)一樣我們我們需要引入它。
<script type="text/javascript" src="angular-1.3.0.14/angular-route.js"></script>
然后將它注入到我們的模塊中,代碼如下:
var routeMod = angular.module('routeMod', ['ngRoute']);
接下來(lái)的工作是配置html碎片的訪(fǎng)問(wèn)路徑,我們需要調(diào)用模塊的config方法來(lái)對(duì)$routeProvider服務(wù)進(jìn)行配置,代碼如下:
routeMod.config(['$routeProvider',function($routeProvider){
$routeProvider.when('/1',{
templateUrl:'tutorial07/page1.html',
controller:'MultiViewController'
})
.when('/2',{
templateUrl:'tutorial07/page2.html',
controller:'MultiViewController'
})
}])
我們通過(guò)ng-view指令定義了一個(gè)視圖,在控制器中調(diào)用$location.path()方法來(lái)指定在該視圖中加載哪一個(gè)碎片。
AngularJS源碼可點(diǎn)擊此處本站下載。
希望本文所述對(duì)大家AngularJS程序設(shè)計(jì)有所幫助。
- AngularJS實(shí)現(xiàn)動(dòng)態(tài)切換樣式的方法分析
- AngularJS標(biāo)簽頁(yè)tab選項(xiàng)卡切換功能經(jīng)典實(shí)例詳解
- 詳解AngularJS ng-class樣式切換
- angularJs的ng-class切換class
- 使用AngularJS2中的指令實(shí)現(xiàn)按鈕的切換效果
- AngularJS路由切換實(shí)現(xiàn)方法分析
- AngularJS實(shí)現(xiàn)使用路由切換視圖的方法
- 用AngularJS的指令實(shí)現(xiàn)tabs切換效果
- 使用AngularJS實(shí)現(xiàn)可伸縮的頁(yè)面切換的方法
- angularjs實(shí)現(xiàn)Tab欄切換效果
相關(guān)文章
詳解Angular5路由傳值方式及其相關(guān)問(wèn)題
這篇文章主要介紹了詳解Angular5路由傳值方式及其相關(guān)問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
angular實(shí)現(xiàn)spa單頁(yè)面應(yīng)用實(shí)例
本篇文章主要介紹了angular實(shí)現(xiàn)spa單頁(yè)面應(yīng)用實(shí)例,小本篇文章是對(duì)單頁(yè)面的一個(gè)簡(jiǎn)單的基本邏輯操作,這個(gè)方法可以搭建基本的單頁(yè)面的邏輯結(jié)構(gòu)。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
angularjs 表單密碼驗(yàn)證自定義指令實(shí)現(xiàn)代碼
這篇文章主要介紹了angularjs 表單密碼驗(yàn)證自定義指令實(shí)現(xiàn)代碼,需要的朋友可以參考下2016-10-10
Angular中ng-repeat與ul li的多層嵌套重復(fù)問(wèn)題
這篇文章主要介紹了Angular中ng-repeat與ul li的多層嵌套重復(fù)問(wèn)題,需要的朋友可以參考下2017-07-07
Angular 4根據(jù)組件名稱(chēng)動(dòng)態(tài)創(chuàng)建出組件的方法教程
組件是我們?cè)趯W(xué)習(xí)angular中必不可少的一部分,下面這篇文章主要給大家介紹了關(guān)于Angular 4如何根據(jù)組件名稱(chēng)動(dòng)態(tài)創(chuàng)建出組件的相關(guān)資料,文中通過(guò)圖文與示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-11-11

