What did we just do?

  1. In app.js, we mapped a URL to PhotoController and photo.html. We added a variable part named id to the URL, like this: /photos/:id.
  2. In PhotoController, we used Angular’s $routeParams to retrieve id from the URL by using $routeParams.id. Notice that we injected both $routeParams and the photos service into the PhotoController dependency array to make them available to use inside the controller.
  3. Then to fetch an individual photo, we first used the photos service to fetch the array of photos from the server, and then used $routeParams.id to access the specific photo by its index.
  4. As before, any properties attached to $scope become available to use in the view. This means in photo.html, we can display the photo’s detail using expressions as done before.

Notice that when you click on links, the app doesn’t do a full reload. Only the part of the view specified by <div ng-view></div> changes.



Finish the template so that it displays a photo’s details.

First, in the browser, visit https://content.codecademy.com/courses/ltp4/photos-api/photos.json. Looking at the format of the data in the array, each photo has six pieces of data - title, author, url, pubdate, upvotes, and views.


In the template photo.html, display a photo’s remaining five pieces of data. Then visit http://localhost:8000/ in the browser and click on a photo. A detail page about that photo should appear.


Use the number filter to format the views and upvotes.


Use the date filter to format the pubdate.


View the result in the browser. The photo’s views, upvotes, and date should now be formatted.

Take this course for free

Mini Info Outline Icon
By signing up for Codecademy, you agree to Codecademy's Terms of Service & Privacy Policy.

Or sign up using:

Already have an account?