Latest web development tutorials

AngularJS routage

Ce chapitre, nous allons introduire la route AngularJS.

AngularJS acheminés par différentes URL nous permet d'accéder à un contenu différent.

Par AngularJS peuvent voir plus d'une seule page des applications Web (page unique d'applications Web, SPA).

Notre URL est généralement sous la forme dehttp://w3big.com/first/page, mais dans une seule page des applications Web AngularJS par # + marqueobtenue, par exemple:

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

En cliquant sur l'un des ci-dessus lorsque nous avons un lien vers le serveur s'il vous plaît traiter sont les mêmes (http://w3big.com/). Parce que le contenu après le signe # à la fin de la demande de service sera ignoré par le navigateur. Nous avons donc besoin de mettre en œuvre la fonction de client du # plus loin dans la mise en œuvre. AngularJS routes pour nous aider à travers une+ marque # pour distinguer différentes pages logiques et des pages distinctes liées au contrôleur correspondant.

Dans le graphique ci-dessus, nous pouvons voir qui a créé deux URL: / ShowOrders et / AddNewOrder. Chaque URL a une vue et le contrôleur correspondant.

Ensuite, nous regardons un exemple simple:

<html>
    <head>
    	<meta charset="utf-8">
        <title>AngularJS 路由实例 - 本教程</title>
    </head>
    <body ng-app='routingDemoApp'>
     
        <h2>AngularJS 路由应用</h2>
        <ul>
            <li><a href="#/">首页</a></li>
            <li><a href="#/computers">电脑</a></li>
            <li><a href="#/printers">打印机</a></li>
            <li><a href="#/blabla">其他</a></li>
        </ul>
         
        <div ng-view></div>
        <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
        <script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>
        <script>
            angular.module('routingDemoApp',['ngRoute'])
            .config(['$routeProvider', function($routeProvider){
                $routeProvider
                .when('/',{template:'这是首页页面'})
                .when('/computers',{template:'这是电脑分类页面'})
                .when('/printers',{template:'这是打印机页面'})
                .otherwise({redirectTo:'/'});
            }]);
        </script>
     
     
    </body>
</html>

Essayez »

Des exemples d'analyse:

  • 1, chargé de mettre en œuvre le routage fichier js: angulaires-route.js.

  • 2, contient le module ngRoute que le module dépend du module d'application principale.

    angular.module('routingDemoApp',['ngRoute'])
    
  • 3, en utilisant l'instruction ngView.

    <div ng-view></div>

    contenu HTML dans le div en fonction des changements d'itinéraire.

  • 4, configurez $ routeProvider, AngularJS $ routeProvider utilisé pour définir des règles de routage.

    module.config(['$routeProvider', function($routeProvider){
        $routeProvider
            .when('/',{template:'这是首页页面'})
            .when('/computers',{template:'这是电脑分类页面'})
            .when('/printers',{template:'这是打印机页面'})
            .otherwise({redirectTo:'/'});
    }]);
    

config module AngularJS fonction permet de configurer des règles de routage. En utilisant configAPI, nous demandons que $ routeProvider injecté dans notre fonction de configuration et d'utilisation $ routeProvider.whenAPI pour définir nos règles de routage.

$ RouteProvider nous fournir la date (chemin, objet) et autre (objet) définit toutes les routes dans l'ordre qui prend deux arguments:

  • Le premier paramètre est les règles d'URL régulier ou URL.
  • Le deuxième paramètre est l'objet de configuration de routage.

objet Paramètres de l'itinéraire

AngularJS itinéraire peut être atteint grâce à des modèles différents.

La fonction $ routeProvider.when premier argument est une URL de règle régulière ou l'URL, la seconde configuration des paramètres d'un itinéraire.

Configuration Routage règles de syntaxe d'objet sont les suivantes:

$routeProvider.when(url, {
    template: string,
    templateUrl: string,
    controller: string, function 或 array,
    controllerAs: string,
    redirectTo: string, function,
    resolve: object<key, function>
});

Description Paramètre:

  • template:

    Si nous avons seulement besoin d'insérer un contenu simple HTML dans ng-vue, puis utilisez ce paramètre:

    .when('/computers',{template:'这是电脑分类页面'})
  • templateURL:

    Si nous avons seulement besoin d'insérer les fichiers de modèles HTML dans le ng-vue, puis utilisez ce paramètre:

    $routeProvider.when('/computers', {
        templateUrl: 'views/computers.html',
    });
    

    Le code ci-dessus obtenir des vues à partir du contenu du fichier serveur / computers.html dans le ng-view.

  • contrôleur:

    fonction, chaîne ou type de tableau, la fonction de contrôleur est exécutée sur le modèle actuel, créer un nouveau champ d'application.

  • controllerAs:

    type de chaîne, spécifiez un alias pour le contrôleur.

  • RedirectTo:

    Adresse redirection.

  • résoudre:

    Indique le contrôleur actuel repose sur d'autres modules.

Exemples

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
<script src="http://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>

<script type="text/javascript">
angular.module('ngRouteExample', ['ngRoute'])
.controller('HomeController', function ($scope, $route) { $scope.$route = $route;})
.controller('AboutController', function ($scope, $route) { $scope.$route = $route;})
.config(function ($routeProvider) {
    $routeProvider.
    when('/home', {
        templateUrl: 'embedded.home.html',
        controller: 'HomeController'
    }).
    when('/about', {
        templateUrl: 'embedded.about.html',
        controller: 'AboutController'
    }).
    otherwise({
        redirectTo: '/home'
    });
});
</script>

  
</head>

<body ng-app="ngRouteExample" class="ng-scope">
  <script type="text/ng-template" id="embedded.home.html">
      <h1> Home </h1>
  </script>

  <script type="text/ng-template" id="embedded.about.html">
      <h1> About </h1>
  </script>

  <div> 
    <div id="navigation">  
      <a href="#/home">Home</a>
      <a href="#/about">About</a>
    </div>
      
    <div ng-view="">
    </div>
  </div>
</body>
</html>

Essayez »