182 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			182 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
.l-main-section
 | 
						|
 | 
						|
  p.
 | 
						|
    As long as you already
 | 
						|
    <a href="https://www.dartlang.org/downloads/">have the Dart SDK</a>,
 | 
						|
    getting started with Angular 2 is simple:
 | 
						|
 | 
						|
  ol
 | 
						|
    li Depend on the <b>angular2</b> pub package.
 | 
						|
    li Create a Dart file that defines (directly or indirectly) a
 | 
						|
       <b>root component</b> and <b>bootstraps</b> Angular.
 | 
						|
    li Create an HTML file that uses the root component and points to the Dart file
 | 
						|
 | 
						|
  p.
 | 
						|
    You can use whichever editor or IDE you like,
 | 
						|
    or just use the command-line tools that the Dart SDK provides.
 | 
						|
    See <a href="http://www.dartlang.org/tools/">Dart Tools</a>
 | 
						|
    for more information.
 | 
						|
 | 
						|
 | 
						|
  h2#section-install Depend on angular2
 | 
						|
 | 
						|
  p.
 | 
						|
    To use Angular2 in your app, include angular2 as a dependency in
 | 
						|
    your app's <b>pubspec.yaml</b> file. For example:
 | 
						|
 | 
						|
  pre.prettyprint.lang-yaml
 | 
						|
    code.
 | 
						|
      # pubspec.yaml
 | 
						|
      name: getting_started
 | 
						|
      description: Dart version of Angular 2 example, Getting Started
 | 
						|
      version: 0.0.1
 | 
						|
      dependencies:
 | 
						|
        angular2: 2.0.0-alpha.21
 | 
						|
        browser: any
 | 
						|
  p.
 | 
						|
    Run <b>pub get</b> to download the packages your app depends on.
 | 
						|
    (<a href="https://www.dartlang.org/tools/">Dart-savvy editors and IDEs</a>
 | 
						|
    typically run <code>pub get</code> for you.)
 | 
						|
 | 
						|
 | 
						|
.l-main-section
 | 
						|
  h2#section-set-up-the-starting-component Write the Dart code
 | 
						|
 | 
						|
  p.
 | 
						|
    Next to your <code>pubspec.yaml</code> file,
 | 
						|
    create a <code>web</code> subdirectory containing a Dart file
 | 
						|
    (<code>main.dart</code>).
 | 
						|
    Edit <code>main.dart</code>, adding a component class (<b>AppComponent</b>),
 | 
						|
    configuring it to bind to the <code><my-app></code> element,
 | 
						|
    and creating a top-level <code>main()</code> function that calls
 | 
						|
    Angular's <code>bootstrap()</code> function.
 | 
						|
 | 
						|
  pre.prettyprint.lang-dart
 | 
						|
    code.
 | 
						|
      // web/main.dart
 | 
						|
      import 'package:angular2/angular2.dart';
 | 
						|
      import 'package:angular2/src/reflection/reflection.dart' show reflector;
 | 
						|
      import 'package:angular2/src/reflection/reflection_capabilities.dart' show ReflectionCapabilities;
 | 
						|
 | 
						|
      @Component(
 | 
						|
        selector: 'my-app'
 | 
						|
      )
 | 
						|
      @View(
 | 
						|
        template: '<h1>My first Angular 2 App</h1>'
 | 
						|
      )
 | 
						|
      class AppComponent {
 | 
						|
      }
 | 
						|
 | 
						|
      main() {
 | 
						|
        reflector.reflectionCapabilities = new ReflectionCapabilities();
 | 
						|
        bootstrap(AppComponent);
 | 
						|
      }
 | 
						|
 | 
						|
.l-main-section
 | 
						|
  h2#section-create-an-entry-point Create an HTML file
 | 
						|
  p.
 | 
						|
    In the <code>web/</code> directoryapp, create an HTML file (<code>index.html</code>).
 | 
						|
    Edit <code>index.html</code> to add a <code><my-app></code> element
 | 
						|
    and call <code>main.dart</code>.
 | 
						|
 | 
						|
  pre.prettyprint.lang-html
 | 
						|
    code.
 | 
						|
      <!-- web/index.html -->
 | 
						|
      <!DOCTYPE html>
 | 
						|
      <html>
 | 
						|
        <head>
 | 
						|
          <link rel="stylesheet" href="style.css">
 | 
						|
        </head>
 | 
						|
        <body>
 | 
						|
          <my-app></my-app>
 | 
						|
          <script type="application/dart" src="main.dart"></script>
 | 
						|
          <script src="packages/browser/dart.js"></script>
 | 
						|
        </body>
 | 
						|
      </html>
 | 
						|
 | 
						|
.l-main-section
 | 
						|
  h2#section-run-it Run the app!
 | 
						|
 | 
						|
  p.
 | 
						|
    Now run the app. How you do this depends on your tools.
 | 
						|
 | 
						|
  ul
 | 
						|
    li.
 | 
						|
      If you're using <b>Dart Editor</b>,
 | 
						|
      right-click <b>web/index.html</b>,
 | 
						|
      and choose <b>Open in Dartium</b>.
 | 
						|
      This starts a web server
 | 
						|
      and opens your app in Dartium,
 | 
						|
      an experimental version of the Chromium browser that contains the Dart VM.
 | 
						|
 | 
						|
    li.
 | 
						|
      If you're using <b>WebStorm</b> or <b>IntelliJ IDEA</b>,
 | 
						|
      right-click <b>web/index.html</b>,
 | 
						|
      and choose <b>Run 'index.html'</b>.
 | 
						|
 | 
						|
    li.
 | 
						|
      If you're using the command line and don't have Dartium,
 | 
						|
      serve the app using <code>pub serve</code>,
 | 
						|
      and then run it by visiting <b>http://localhost:8080</b> in a browser.
 | 
						|
      Generating the JavaScript takes a few seconds when you first visit the page,
 | 
						|
      and the generated JavaScript is currently large.
 | 
						|
      The generated JavaScript will be smaller once
 | 
						|
      Angular's transformer becomes available.
 | 
						|
 | 
						|
  p.
 | 
						|
    You should see something like this:
 | 
						|
 | 
						|
  figure.image-display
 | 
						|
    img(src='setup-example1.png')
 | 
						|
 | 
						|
.l-main-section
 | 
						|
  h2#section-explanations Explanations
 | 
						|
 | 
						|
  p This basic Angular app contains the structure for any app you'll build.
 | 
						|
 | 
						|
  .l-sub-section
 | 
						|
    h3 It's all a tree
 | 
						|
 | 
						|
    p.
 | 
						|
      You can think of an Angular app as a tree of components.
 | 
						|
      The root component acts as the top-level container for the rest of your application.
 | 
						|
      You've named this one <code>AppComponent</code>, but there's
 | 
						|
      nothing special about the name; you can use whatever makes sense to you.
 | 
						|
 | 
						|
    p.
 | 
						|
      The root component's job is to give a location in the HTML file where
 | 
						|
      your application can
 | 
						|
      render through its element—in this case, <code><my-app></code>.
 | 
						|
      There's nothing special about the HTML filename or the element name;
 | 
						|
      you can pick whatever you like.
 | 
						|
 | 
						|
    p.
 | 
						|
      The root component loads the initial template for the application,
 | 
						|
      which loads other components to perform
 | 
						|
      whatever functions your application needs—menu bars, views, forms, and so on.
 | 
						|
      We'll walk through examples of all of
 | 
						|
      these in the following pages.
 | 
						|
 | 
						|
  .l-sub-section
 | 
						|
    h3 @Component and @View annotations
 | 
						|
 | 
						|
    p.
 | 
						|
      A component annotation describes details about the component.
 | 
						|
      An annotation can be identified by its at-sign (<code>@</code>).
 | 
						|
    p.
 | 
						|
      The <code>@Component</code> annotation defines the HTML tag for
 | 
						|
      the component by specifying the component's CSS selector.
 | 
						|
    p.
 | 
						|
      The <code>@View</code> annotation defines the HTML that
 | 
						|
      represents the component.
 | 
						|
      The component you wrote uses an inline template,
 | 
						|
      but you can also have an external template.
 | 
						|
      To use an external template,
 | 
						|
      specify a <code>templateUrl</code> property and
 | 
						|
      give it the path to the HTML file.
 | 
						|
 | 
						|
 | 
						|
  p.
 | 
						|
    Exciting!  Not excited yet?
 | 
						|
    Let's move on to <a href="displaying-data.html">Displaying Data</a>.
 |