Giter Club home page Giter Club logo

ember-inspector's Introduction

General Assembly Logo

Ember Inspector

Now that you've seen a basic Ember application and have discussed all of the different components that go into it, let's look at a useful tool that will prove invaluable when you build your own applications, the Ember Inspector.

Prerequisites

By now, you have already learned how to:

  • Create a new Ember application from the console.
  • Identify different parts of an Ember application and explain what they do.

Objectives

By the end of this session, you should be able to:

  • Set up the Ember Inspector browser extension.

  • Get top-level information about the application using the Info tab.

  • Inspect an application's view states (along with associated Models and Templates) using the Inspector's "View Tree" tab.

  • Explore individual Routes using the "Routes" tab.

  • Look through the data store using the "Data" tab.

  • Identify possible deprecated code in your applications using the "Deprecations" tab.

Preparation

  1. Fork and clone this repository.

  2. Install dependencies with npm install and bower install.

  3. Install the Ember Inspector through the Chrome Web Store (if you're using FireFox, you can download it as an add-on ).

Using Ember Inspector

In order to get comfortable using Ember Inspector, we're going to use it to explore a working Ember app (included in this repo for your convenience). The code for this application comes from an example app produced by the ember-cli team.

Run ember serve to launch the application. You should see a message in the console that looks like this:

Build successful - 9951ms.

Slowest Trees                                 | Total
----------------------------------------------+---------------------
ConcatWithMaps                                | 6567ms

Slowest Trees (cumulative)                    | Total (avg)
----------------------------------------------+---------------------
ConcatWithMaps (4)                            | 6622ms (1655 ms)
Babel (4)                                     | 1088ms (272 ms)

Open http://localhost:4200 in your browser; you should see a page like this:

Page

Finally, open Ember Inspector; in Chrome, you do this by opening the Chrome Inspector and going to the tab labelled 'Ember'.

Info Tab

Info

The info tab is where you can find version information for the key libraries in your Ember application (Ember, Ember Data, jQuery) as well as the version of Ember Inspector itself.

View Tree Tab

View Tree

The 'View Tree' tab shows all of the view states in your application. A view state is an abstraction representing a possible way that the screen can look; in the context of an Ember application, a view state is represented by a Route and a Template. A typical application might have a large number of different Routes and view states, nested in a tree-like fashion based on their URLs.

This particular app only has one view state, application, so we can't see that tree structure very easily. However, if we check the 'Components' box, suddenly a tree structure appears! Even though there are no other view states inside application, application does contain multiple Ember Components, each with its own template.

If you click one of the cells in the 'View/Component' column, it will pop up a sidebar on the right displaying all of the properties for that particular top-level template or Component.

See the >$E thing on the right side of the cells in the 'Model', 'Controller', and 'View/Component' columns? That link will take the entity referenced in that cell and make it available in the console, inside a variable called $E. For instance, if click the >$E in the Model column, you can run the following script in the console to print out the names of all the rentals in the list.

$E.forEach(function(rental){console.log(rental.get('title'))})

Take note that these entities usually have a lot of properties and methods, most of which you don't ever manipulate directly - they're part of the inner machinery of how Ember works.

Routes Tab

Routes

The 'Routes' tab allows you to look at all of the routes in your application that users can hit. This includes routes that were auto-generated by Ember, such as 'application_loading' and 'application_error'.

'_loading' and '_error' are a special kinds of view states called 'sub-states'; they're what the users see when transitioning between pages. By default, if you don't specify Templates to sit at those Routes, the app will show the current view state until the next view state is fully loaded (or there is an error).

Much of this content is similar to the content that you can see on the 'View Tree' tab. However, it's worth noting that Route Objects are only visible on the 'Routes' tab, while Models are not directly visible.

Similar to the 'View Tree' tab, the 'Routes' tab allows us to zoom in on Route Objects and Controllers via a sidebar on the right.

Data Tab

Data

The 'Data' tab is a very useful one - it shows every model instance that'd been created by your application (split up by Model) along with all of its properties. Naturally, this is very useful for making sure that your data all look correct.

Deprecations Tab

Deprecations

The 'Deprecations' tab functions as a sort of linter for your Ember code, giving you warnings about particular expressions, idioms, or tools that will soon be phased out. Since Ember is a fairly new framework (initially released in December 2011), updates are common, so being able to keep tabs on the differences between one version of Ember and the next is very important.

Lab : Explore the Ember Inspector

Take the next 15 minutes to play around with this app in the Ember Inspector. If you notice anything interesting, write it down - we'll take five minutes to share out to the rest of the class at the end of the exercise.

Additional Resources

  1. All content is licensed under a CC­BY­NC­SA 4.0 license.
  2. All software code is licensed under GNU GPLv3. For commercial use or alternative licensing, please contact [email protected].

ember-inspector's People

Contributors

realweeks avatar ember-tomster avatar

Watchers

James Cloos avatar Rebekah Heacock Jones avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.