Roadmap › AngularJS (1.x) — Legacy › Module: Scope, Digest and Directives
Lessons in this course (13)

11. Routing with ngRoute and UI-Router

IntermediateMediumLesson 11 of 13
js
angular.module("shopApp", ["ngRoute"])
  .config(["$routeProvider", "$locationProvider", function ($routeProvider, $locationProvider) {
    $routeProvider
      .when("/orders", { template: "<order-list></order-list>" })
      .when("/orders/:id", {
        templateUrl: "views/order-detail.html",
        controller: "OrderDetailController as vm",
        resolve: { order: ["$route", "orderApi", ($route, api) => api.get($route.current.params.id)] },
      })
      .otherwise("/orders");
    $locationProvider.html5Mode(true);             // URLs without #! (needs server rewrite + <base href="/">)
  }]);

UI-Router uses states ($stateProvider.state("orders.detail", {...})), nested views and named views — better for complex apps. resolve loads data before the route activates.