Rutas AngularJS

ngRoute El módulo ayuda a su aplicación a convertirse en una aplicación de una sola página.

¿Qué es la routing en AngularJS?

Si desea navegar a diferentes páginas de la aplicación pero también desea que la aplicación sea una SPA (aplicación de una sola página) y sin recarga de página, puede usar ngRoute Módulo.

ngRoute El módulo dirige su aplicación a diferentes páginas sin recargar toda la aplicación.

Ejemplo

Navegue a "red.htm", "green.htm" y "blue.htm":

<body ng-app="myApp">
<p><a href="#/!">página principal</a></p>
<a href="#!red">rojo</a>
<a href="#!green">verde</a>
<a href="#!blue">azul</a>
<div ng-view></div>
<script>
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/red", {
    templateUrl : "red.htm"
  })
  .when("/green", {
    templateUrl : "green.htm"
  })
  .when("/blue", {
    templateUrl : "blue.htm"
  });
});
</script>
</body>

Prueba personalmente

¿Qué necesito?

Para preparar su aplicación para las rutas, debe incluir el módulo AngularJS Route:

<script src="https://cdn.staticfile.net/angular.js/1.6.9/angular-route.js"></script>

Luego, debe incluir ngRoute Agregar como dependencia en el módulo de la aplicación:

var app = angular.module("myApp", ["ngRoute"]);

Ahora su aplicación puede acceder a lo que se ofrece $routeProvider módulo de rutas.

Por favor use $routeProvider Configurar diferentes rutas en la aplicación:

app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/red", {
    templateUrl : "red.htm"
  })
  .when("/green", {
    templateUrl : "green.htm"
  })
  .when("/blue", {
    templateUrl : "blue.htm"
  });
});

¿Dónde está?

Su aplicación necesita un contenedor para放置rutas proporcionadas por el enrutador.

Este contenedor es ng-view

Se puede incluir la directiva de tres formas diferentes en la aplicación. ng-view directiva:

Ejemplo

<div ng-view></div>

Prueba personalmente

Ejemplo

<ng-view></ng-view>

Prueba personalmente

Ejemplo

<div class="ng-view"></div>

Prueba personalmente

La aplicación solo puede tener una ng-view directiva, que será el marcador de posición para todas las vistas proporcionadas por la ruta.

$routeProvider

Usar $routeProvider,puede definir la página que se mostrará al hacer clic en el enlace.

Ejemplo

definir $routeProvider

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/london", {
    templateUrl : "london.htm"
  })
  .when("/paris", {
    templateUrl : "paris.htm"
  });
});

Prueba personalmente

usando la aplicación de config método definido $routeProvider。Se ejecutará en el momento de la carga de la aplicación en config trabajo registrado en métodos.

controladores

Usar $routeProvider,también puede definir un controlador para cada "vista".

Ejemplo

Agregar controlador:

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/london", {
    templateUrl : "london.htm",
    controlador : "londonCtrl"
  })
  .when("/paris", {
    templateUrl : "paris.htm",
    controlador : "parisCtrl"
  });
});
app.controller("londonCtrl", function ($scope) {
  $scope.msg = "Me encanta Londres";
});
app.controller("parisCtrl", function ($scope) {}}
  $scope.msg = "I love Paris";
});

Prueba personalmente

"london.htm" y "paris.htm" son archivos HTML normales, en los que puede agregar expresiones AngularJS, al igual que en otras partes HTML de la aplicación AngularJS.

Estos archivos se ven así:

london.htm

<h1>Londres</h1>
<h3> Londres es la capital de Inglaterra.</h3>
<p>Es la ciudad más poblada del Reino Unido, con una área metropolitana de más de 13 millones de habitantes.</p>
<p>{{msg}}</p>

paris.htm

<h1>París</h1>
<h3>París es la capital de Francia.</h3>
<p>La región de París es una de las áreas urbanas más grandes de Europa, con más de 12 millones de habitantes.</p>
<p>{{msg}}</p>

Plantilla

En el ejemplo anterior, en $routeProvider.when se usó Método templateUrl .

También puede usar Atributo template Atributo, que le permite escribir HTML directamente en el valor del atributo, en lugar de referirse a la página.

Ejemplo

Escribir plantilla:

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    template : "<h1>Main</h1><p>Haga clic en los enlaces para cambiar este contenido</p>"
  })
  .when("/banana", {
    template : "<h1>Plátano</h1><p>Los plátanos contienen alrededor del 75% de agua.</p>"
  })
  .when("/tomate", {
    template : "<h1>Tomate</h1><p>Los tomates contienen alrededor del 95% de agua.</p>"
  });
});

Prueba personalmente

método otherwise

En el ejemplo anterior, usamos $routeProvider el método when.

También puede usar otherwise Método, cuando no coinciden todas las rutas, se convertirá en la ruta predeterminada.

Ejemplo

Si ni hacen clic en el enlace "Banana" ni en el enlace "Tomato", dícales:

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/banana", {
    template : "<h1>Plátano</h1><p>Los plátanos contienen alrededor del 75% de agua.</p>"
  })
  .when("/tomate", {
    template : "<h1>Tomate</h1><p>Los tomates contienen alrededor del 95% de agua.</p>"
  })
  .otherwise({
    template : "<h1>Ninguno</h1><p>Nada ha sido seleccionado</p>"
  });
});

Prueba personalmente