国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

AngularJS 避繁就簡的路由

2019-11-20 09:34:20
字體:
來源:轉載
供稿:網友

AngularJS 路由允許我們通過不同的 URL 訪問不同的內容。

通過 AngularJS 可以實現多視圖的單頁Web應用(single page web application,SPA)。

通常我們的URL形式為 http://runoob.com/first/page,但在單頁Web應用中 AngularJS 通過 # + 標記 實現,例如:

http://runoob.com/#/first
http://runoob.com/#/second
http://runoob.com/#/third

這里寫圖片描述

先看看$routeProvider 的配置對象屬性方法:

路由設置對象解析:

$routeProvider.when(url(路由名稱), { template: string(模板提示字符串), templateUrl: string(模板路徑URL), controller: string, function 或 array(在當前模板創建控制器,生成新的 $scope 作用域), controllerAs: string(控制器別名), redirectTo: string, function(重定向地址), resolve: object<key, function>(當前路由所依賴的模塊)});

實現路由的大致步驟:

第一步:導入ngRoute模塊

<script type="text/javascript" src="js/angular-route.min.js"></script>

第二步:在應用模塊中使用ngRoute

angular.module("routeApp", ["ngRoute"])

第三步:使用 ng-view 指令

<div ng-view class="well" ng-controller='defaultCtrl'></div>

第四步:配置 $routeProvider 路由規則

....config(['$routeProvider', function ($routeProvider){ $routeProvider  .when('/home', {   templateUrl : 'home.tpl.html',   controller : 'HomeCtrl',  })  .when('/computer', {   templateUrl : 'computer.html',  })  .when('/phone', {   templateUrl : 'phone.html',  })  .when('/other', {   templateUrl : 'other.tpl.html',   controller : 'OtherCtrl',  })}])...

第五步:通過超鏈接使用路由

<ul class="nav nav-tabs"> <li><a href="#/home">首頁</a></li> <li><a href="#/computer">電腦</a></li> <li><a href="#/phone">手機</a></li> <li><a href="#/other">其他</a></li></ul>

完整案例:
1 route.html頁面

<html> <head>  <meta charset="utf-8">  <title>AngularJS 路由實例</title>  <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> </head> <body ng-app='routeApp'>  <ul class="nav nav-tabs">   <li><a href="#/home">首頁</a></li>   <li><a href="#/computer">電腦</a></li>   <li><a href="#/phone">手機</a></li>   <li><a href="#/other">其他</a></li>  </ul>  <div ng-view class="well" ng-controller='defaultCtrl'></div>  <script type="text/javascript" src="js/jquery.min.js"></script>  <script type="text/javascript" src="js/bootstrap.min.js"></script>  <script type="text/javascript" src="js/angular.min.js"></script>  <script type="text/javascript" src="js/angular-route.min.js"></script>  <script type="text/ng-template" id="home.tpl.html">   <h1>{{data}}</h1>  </script>  <script type="text/ng-template" id="other.tpl.html">   <h1>{{data}}</h1>  </script>  <script type="text/javascript">  angular.module("routeApp", ["ngRoute"])   .config(['$routeProvider', function ($routeProvider){    $routeProvider     .when('/home', {      templateUrl : 'home.tpl.html',      controller : 'HomeCtrl',     })     .when('/computer', {      templateUrl : 'computer.html',     })     .when('/phone', {      templateUrl : 'phone.html',     })     .when('/other', {      templateUrl : 'other.tpl.html',      controller : 'OtherCtrl',     })   }])   .controller('defaultCtrl', function ($scope) {    $scope.computers = [     { id: 0, name: "宏基", category: "Test", price: 1.25 },     { id: 1, name: "聯想", category: "Test", price: 2.45 },     { id: 2, name: "蘋果", category: "Test", price: 4.25 }    ];    $scope.phones = [     { id: 0, name: "三星", category: "Test", price: 1.25 },     { id: 1, name: "榮耀", category: "Test", price: 2.45 },     { id: 2, name: "魅族", category: "Test", price: 4.25 }    ];   })   .controller("HomeCtrl", function ($scope, $route) {    $scope.$route = $route;    $scope.data = "Home Home";   })   .controller("OtherCtrl", function ($scope, $route) {    $scope.$route = $route;    $scope.data = "Other Other";   })  </script> </body> </html>

2.computer.html 頁面

<div class="panel-body"> <table class="table table-striped table-hover">  <thead>   <tr>    <th>名稱</th>    <th>類別</th>    <th class="text-right">價格</th>    <th>{{data}}</th>   </tr>  </thead>  <tbody>   <tr ng-repeat="item in computers">    <td>{{item.name}}</td>    <td>{{item.category}}</td>    <td class="text-right">{{item.price | currency}}</td>    <td class="text-center">     <button class="btn btn-xs btn-primary" ng-click="deleteProduct(item)">刪除</button>     <a href="/edit/{{item.id}}" class="btn btn-xs btn-primary" ng-click="editOrCreateProduct(item)">編輯</a>     <button class="btn btn-xs btn-primary" ng-click="incrementPrice(item)">+</button>    </td>   </tr>  </tbody> </table> <div>  <button class="btn btn-xs btn-primary" ng-click="editOrCreateProduct()">添加</button>  <a href="create" class="btn btn-xs btn-primary" ng-click="editOrCreateProduct()">Add</a> </div></div>

3.phone.html 頁面

<div class="panel-body"> <table class="table table-striped table-hover">  <thead>   <tr>    <th>名稱</th>    <th>類別</th>    <th class="text-right">價格</th>    <th>{{data}}</th>   </tr>  </thead>  <tbody>   <tr ng-repeat="item in phones">    <td>{{item.name}}</td>    <td>{{item.category}}</td>    <td class="text-right">{{item.price | currency}}</td>    <td class="text-center">     <button class="btn btn-xs btn-primary" ng-click="deleteProduct(item)">刪除</button>     <a href="/edit/{{item.id}}" class="btn btn-xs btn-primary" ng-click="editOrCreateProduct(item)">編輯</a>     <button class="btn btn-xs btn-primary" ng-click="incrementPrice(item)">+</button>    </td>   </tr>  </tbody> </table> <div>  <button class="btn btn-xs btn-primary" ng-click="editOrCreateProduct()">添加</button>  <a href="create" class="btn btn-xs btn-primary" ng-click="editOrCreateProduct()">Add</a> </div></div>

單擊“首頁”

這里寫圖片描述

單擊“電腦”

這里寫圖片描述

單擊“手機”

這里寫圖片描述

單擊“其他”

這里寫圖片描述

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沐川县| 吕梁市| 香格里拉县| 永州市| 丹寨县| 密云县| 高雄市| 绥中县| 荔波县| 彩票| 达拉特旗| 汝州市| 凤台县| 浦江县| 和顺县| 玉龙| 白朗县| 忻城县| 甘泉县| 绵阳市| 长子县| 彰武县| 婺源县| 深州市| 兴宁市| 友谊县| 大连市| 南漳县| 江口县| 南木林县| 白城市| 永新县| 镇江市| 黄浦区| 黔南| 平潭县| 贡山| 苍南县| 松原市| 福建省| 滦南县|