Angularjs

5.2. $location & $route

$location

$location parsea la URL de la barra del navegdor (basado en el tradicional window.location y crea una URL válida para nuestra aplicación. Los cambios en $location son reflejados en la barra del navegador y las modificaciones de la barra del navegador son reflejados en $location.

 http://proweb.ua.es/appangular/#/some/path?foo=bar&baz=xoxo
 ---
 $location.absUrl() - http://proweb.ua.es/appangular/#/some/path?foo=bar&baz=xoxo
 $location.url() - /some/path?foo=bar&baz=xoxo
 $location.url('pagina1') - es setter y modificaría a http://proweb.ua.es/appangular/pagina1

 $location.path() - /some/path
 $location.host() - proweb.ua.es/


$route

$route es el obejto utilizado para las URLs deep-linking. Observa los cambios en $location.url()

Las propiedades de $route son las siguientes:

  • current. Ruta actual donde se puede conocer cual es el controlador que carga, su vista $template y su ámbito $scope.
  • routes. Todas las configuraciones de rutas.

    $route.current
    $route.current.templateUrl
    $route.current.params //igual que $routeParams
    $route.current.scope.libro //donde libro es una variable del scope
    

Existen varios eventos de $route:

  • $routeChangeStart. Se dispara justo antes de que la ruta cambie.
  • $routeChangeSuccess. Se dispara después de que las dependencias hayan sido resueltas satisfactoriamente. En ngView se ha renderizado la vista después de instanciar el controlador.
  • $routeChangeError. Se dispara si no se han resuelto bien las dependencias y el controlador no ha podido ser instanciado.