初次使用AngularJS中的ng-view,路由控制


AngularJS中的route可以控制頁面元素的改變,使多頁面變成一個單頁面

第一步:引入必要的js:

<script src="js/lib/angular.js"></script>
<script src="js/lib/angular-animate.min.js"></script>
<script src="js/lib/angular-route.min.js"></script>

<script src="app.js"></script>

第二步:准備好一個單頁:

<body ng-app="animateApp">

    <!-- inject our views using ng-view -->
    <!-- each angular controller applies a different class here -->
    <div class="page {{ pageClass }}" ng-view></div>
        
</body>

第三步:准備好多個模板:

我的文件結構大致如下:

項目名
    --css
    --img
    --js
        --lib
            -angular.js
            -angular-route.js
            -angular-animate.js
       -app.js
    --tpl
       - page-home.html
       - page-about.html
       - page-contact.html 
    --index.html
視圖 page-home.html, page-about.html, page-contact.html
這些應該盡量保持清晰並且直接明了。我們只需要為每個頁面准備一些文字以及鏈到其他頁面的鏈接地址。

<!-- page-home.html -->
<h1>Angular Animations Shenanigans</h1>
<h2>Home</h2>

<a href="#about" class="btn btn-success btn-lg">About</a>
<a href="#contact" class="btn btn-danger btn-lg">Contact</a>
<!-- page-about.html -->
<h1>Animating Pages Is Fun</h1>
<h2>About</h2>

<a href="#" class="btn btn-primary btn-lg">Home</a>
<a href="#contact" class="btn btn-danger btn-lg">Contact</a>
<!-- page-contact.html -->
<h1>Tons of Animations</h1> 
<h2>Contact</h2>

<a href="#" class="btn btn-primary btn-lg">Home</a>
<a href="#about" class="btn btn-success btn-lg">About</a>
現在,我們擁有了我們的頁面,通過使用Angular的路由功能可以將這些頁面注入到我們的主index.html文件中。

現在,所有的乏味的工作已經完成。我們的程序應該可以正常工作,並且可以很好的修改頁面。接下來,讓我們進入下一步,為頁面添加動畫效果!

 

第四步:創建module並配置路由

// app.js

// define our application and pull in ngRoute and ngAnimate
var animateApp = angular.module('animateApp', ['ngRoute', 'ngAnimate']);

// ROUTING ===============================================
// set our routing for this application
// each route will pull in a different controller
animateApp.config(function($routeProvider) {

    $routeProvider

        // home page
        .when('/', {
            templateUrl: 'tpl/page-home.html',
            controller: 'mainController'
        })

        // about page
        .when('/about', {
            templateUrl: 'tpl/page-about.html',
            controller: 'aboutController'
        })

        // contact page
        .when('/contact', {
            templateUrl: 'tpl/page-contact.html',
            controller: 'contactController'
        });

});

第五步:配置對應的Controller

// home page controller
animateApp.controller('mainController', ['$scope',function($scope) {
    $scope.pageClass = 'page-home';
}]);

// about page controller
animateApp.controller('aboutController', function($scope) {
    $scope.pageClass = 'page-about';
});

// contact page controller
animateApp.controller('contactController', function($scope) {
    $scope.pageClass = 'page-contact';
});
現在,我們創建了我們的程序、路由以及控制器。

每一個控制器都有一個它自己的pageClass變量。改變了的值會被添加到index.html文件中的ng-view中,這樣我們的每一個頁面都有了不同的類名。通過這些不同的類名,我們可以為不同的頁面添加不同的動畫效果。

第六步:配置對應的動畫

這個沒有嘗試,參考:

Animating AngularJS Apps: ngView


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM