86 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
block includes
 | 
						||
  include ../_util-fns
 | 
						||
 | 
						||
:marked
 | 
						||
  # Tour of Heroes: the vision
 | 
						||
 | 
						||
  Our grand plan is to build an app to help a staffing agency manage its stable of heroes.
 | 
						||
  Even heroes need to find work.
 | 
						||
 | 
						||
  Of course we'll only make a little progress in this tutorial. What we do build will
 | 
						||
  have many of the features we expect to find in a full-blown, data-driven application: acquiring and displaying
 | 
						||
  a list of heroes, editing a selected hero's detail, and navigating among different
 | 
						||
  views of heroic data.
 | 
						||
 | 
						||
  The Tour of Heroes covers the core fundamentals of Angular.
 | 
						||
  We’ll use built-in directives to show/hide elements and display lists of hero data.
 | 
						||
  We’ll create a component to display hero details and another to show an array of heroes.
 | 
						||
  We'll use one-way data binding for read-only data. We'll add editable fields to update a model
 | 
						||
  with two-way data binding. We'll bind component methods to user events like key strokes and clicks.
 | 
						||
  We’ll learn to select a hero from a master list and edit that hero in the details view. We'll
 | 
						||
  format data with pipes. We'll create a shared service to assemble our heroes. And we'll use routing to navigate among different views and their components.
 | 
						||
 | 
						||
  We’ll learn enough core Angular to get started and gain confidence that
 | 
						||
  Angular can do whatever we need it to do.
 | 
						||
  We'll be covering a lot of ground at an introductory level but we’ll find plenty of links
 | 
						||
  to chapters with greater depth.
 | 
						||
 | 
						||
  Run the <live-example name="toh-6"></live-example>.
 | 
						||
 | 
						||
.l-main-section
 | 
						||
:marked
 | 
						||
  ## The End Game
 | 
						||
 | 
						||
  Here's a visual idea of where we're going in this tour, beginning with the "Dashboard"
 | 
						||
  view and our most heroic heroes:
 | 
						||
 | 
						||
figure.image-display
 | 
						||
  img(src='/resources/images/devguide/toh/heroes-dashboard-1.png' alt="Output of heroes dashboard")
 | 
						||
 | 
						||
:marked
 | 
						||
  Above the dashboard are two links ("Dashboard" and "Heroes").
 | 
						||
  We could click them to navigate between this Dashboard and a Heroes view.
 | 
						||
 | 
						||
  Instead we click the dashboard hero named "Magneta" and the router takes us to a "Hero Details" view
 | 
						||
  of that hero where we can change the hero's name.
 | 
						||
 | 
						||
figure.image-display
 | 
						||
  img(src='/resources/images/devguide/toh/hero-details-1.png' alt="Details of hero in app")
 | 
						||
 | 
						||
:marked
 | 
						||
  Clicking the "Back" button would return us to the "Dashboard".
 | 
						||
  Links at the top can take us to either of the main views.
 | 
						||
  We'll click "Heroes". The app takes to the "Heroes" master list view.
 | 
						||
 | 
						||
figure.image-display
 | 
						||
  img(src='/resources/images/devguide/toh/heroes-list-2.png' alt="Output of heroes list app")
 | 
						||
 | 
						||
:marked
 | 
						||
  We click a different hero and the readonly mini-detail beneath the list reflects our new choice.
 | 
						||
 | 
						||
  We click the "View Details" button to drill into the
 | 
						||
  editable details of our selected hero.
 | 
						||
 | 
						||
  The following diagram captures all of our navigation options.
 | 
						||
 | 
						||
figure.image-display
 | 
						||
  img(src='/resources/images/devguide/toh/nav-diagram.png' alt="View navigations")
 | 
						||
 | 
						||
:marked
 | 
						||
  Here's our app in action
 | 
						||
 | 
						||
figure.image-display
 | 
						||
  img(src='/resources/images/devguide/toh/toh-anim.gif' alt="Tour of Heroes in Action")
 | 
						||
 | 
						||
.l-main-section
 | 
						||
:marked
 | 
						||
  ## Up Next
 | 
						||
 | 
						||
  We’ll build this Tour of Heroes together, step by step.
 | 
						||
  We'll motivate each step with a requirement that we've
 | 
						||
  met in countless applications. Everything has a reason.
 | 
						||
 | 
						||
  And we’ll meet many of the core fundamentals of Angular along the way.
 | 
						||
 | 
						||
  [Let's get started!](./toh-pt1.html)
 |