首頁  >  文章  >  php教程  >  AngularJS入門教學之多視圖切換用法範例

AngularJS入門教學之多視圖切換用法範例

高洛峰
高洛峰原創
2016-12-08 10:39:581197瀏覽

本文實例講述了AngularJS多視圖切換用法。分享給大家供大家參考,具體如下:

在AngularJS應用程式中,我們可以將html碎片寫在一個單獨的檔案中,然後在其他頁面中將該段碎片載入進來。如果有多個碎片文件,我們還可以在控制器中根據使用者的操作動態的載入不同的碎片,從而達到切換視圖的效果。

先來看看筆者寫好的一個案例吧:

AngularJS入門教學之多視圖切換用法範例

這兩個字其實是兩個html碎片,分別寫在page1.html和page2.html。下面是這兩個檔案的內容:

<!--page1.html内容-->
<div>
  <p>《南乡子·登京口北固亭有怀》</p>
  <p>何处望神州?满眼风光北固楼。千古兴亡多少事,悠悠,不尽长江滚滚流。</p>
  <p>年少万兜鍪,坐断东南战未休。天下英雄谁敌手,曹刘。生子当如孙仲谋。</p>
</div>
<!--page2.html内容-->
<div>
  <p>《蝶恋花》</p>
  <p>伫倚危楼风细细,望极春愁,黯黯生天际。草色烟光残照里,无言谁会凭阑意。</p>
  <p>拟把疏狂图一醉,对酒当歌,强乐还无味。衣带渐宽终不悔,为伊消得人憔悴。</p>
</div>

接下來我們來看看如何實現這兩個碎片的切換。

<!DOCTYPE html>
<html ng-app="routeMod">
<head>
  <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()">上一页</button>
      <button ng-click="nextPage()">下一页</button>
    </div>
  </div>
  <footer>
    Copyright:Rongbo_J
  </footer>
  <script>
    var routeMod = angular.module(&#39;routeMod&#39;, [&#39;ngRoute&#39;]);
    routeMod.config([&#39;$routeProvider&#39;,function($routeProvider){
      $routeProvider.when(&#39;/1&#39;,{
        templateUrl:&#39;tutorial07/page1.html&#39;,
        controller:&#39;MultiViewController&#39;
      })
      .when(&#39;/2&#39;,{
        templateUrl:&#39;tutorial07/page2.html&#39;,
        controller:&#39;MultiViewController&#39;
      })
    }])
    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文件,和上節一樣我們我們需要引入它。

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

然後將它注入到我們的模組中,程式碼如下:

var routeMod = angular.module(&#39;routeMod&#39;, [&#39;ngRoute&#39;]);

接下來的工作是配置html碎片的存取路徑,我們需要呼叫模組的config方法來對$routeProvider服務進行配置,程式碼如下:

routeMod.config([&#39;$routeProvider&#39;,function($routeProvider){
  $routeProvider.when(&#39;/1&#39;,{
    templateUrl:&#39;tutorial07/page1.html&#39;,
    controller:&#39;MultiViewController&#39;
  })
  .when(&#39;/2&#39;,{
    templateUrl:&#39;tutorial07/page2.html&#39;,
    controller:&#39;MultiViewController&#39;
  })
}])

我們透過ng-view指令定義了一個視圖,在控制器中呼叫$location.path()方法來指定在該視圖中載入哪一個碎片。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn