Latest Dart info (still needs work)
This commit is contained in:
		
							parent
							
								
									8a998d2eb1
								
							
						
					
					
						commit
						b892275c2b
					
				| @ -3,7 +3,7 @@ | ||||
|     "icon": "home", | ||||
|     "title": "Angular Docs", | ||||
|     "menuTitle": "Docs Home", | ||||
|     "banner": "Angular 2 is currently in Alpha Preview. We reccomend using <a href='https://docs.angularjs.org/guide'>Angular 1.X</a> for production applications." | ||||
|     "banner": "Angular 2 is currently in Alpha Preview. We recommend using <a href='https://angulardart.org/guide'>AngularDart 1.X</a> for production applications." | ||||
|   }, | ||||
| 
 | ||||
|   "quickstart": { | ||||
| @ -14,7 +14,7 @@ | ||||
|   "resources": { | ||||
|     "icon": "play-circle-fill", | ||||
|     "title": "Angular Resources", | ||||
|     "banner": "Angular 2 is currently in Alpha Preview. For <a href='https://docs.angularjs.org/guide'>Angular 1.X Resources</a> please visit <a href='https://angularjs.org/'>Angularjs.org</a>." | ||||
|     "banner": "Angular 2 is currently in Alpha Preview. For AngularDart 1.X please visit <a href='https://angulardart.org/'>angulardart.org</a>." | ||||
|   }, | ||||
| 
 | ||||
|   "api": { | ||||
| @ -26,4 +26,4 @@ | ||||
|     "icon": "chat", | ||||
|     "title": "Help & Support" | ||||
|   } | ||||
| } | ||||
| } | ||||
|  | ||||
| @ -10,5 +10,4 @@ | ||||
|     h3 Angular 1.X for Production | ||||
|     p. | ||||
|       If you're building a production app today, please | ||||
|       <a href="https://docs.angularjs.org/api">use Angular 1.X</a>. | ||||
|       These versions of Angular are production ready and available today. | ||||
|       <a href="https://angulardart.org">use AngularDart 1.X</a>. | ||||
|  | ||||
| @ -3,7 +3,7 @@ | ||||
| 
 | ||||
|   p. | ||||
|     We have an incredible community of developers who are passionate about solving problems. | ||||
|     We reccomend some of the following methods to get help with Angular. | ||||
|     We recommend some of the following methods to get help with Angular. | ||||
| 
 | ||||
| 
 | ||||
|   .l-sub-section | ||||
|  | ||||
| @ -1,144 +1,143 @@ | ||||
| p. | ||||
|   These instructions assume that you already have the Dart SDK | ||||
|   and any tools you like to use with Dart. | ||||
|   If not, go | ||||
|   <a href="https://www.dartlang.org/tools/download.html">download Dart</a>. | ||||
|   Then return here. | ||||
| 
 | ||||
| // STEP 1 - Install Angular ########################## | ||||
| .l-main-section | ||||
|   h2#section-install-angular 1. Install Angular | ||||
| 
 | ||||
|   p. | ||||
|     <strong>Angular is still unpackaged and in alpha</strong>. This quickstart does not | ||||
|     reflect the final build process for Angular. The following setup is for those who | ||||
|     want to try out Angular while it is in alpha. | ||||
| 
 | ||||
|   p. | ||||
|     For the sake of this quickstart we recommend using the | ||||
|     <a href="https://github.com/davideast/conscious"> <code>es6-shim</code> GitHub repository</a>. | ||||
|     This repository will provide a faster start. <code>es6-shim</code> includes Angular and dependencies to compile ES6 in incompatible browsers. | ||||
| 
 | ||||
|   p Clone the repository inside of aleady existing project. | ||||
|     In a new directory, create a <code>pubspec.yaml</code> file. | ||||
|     Add angular2 and browser as dependencies, | ||||
|     and add the angular2 transformer: | ||||
|     [PENDING: if the transformer isn't working in time, | ||||
|     remove it and use reflection in Dartium instead. | ||||
|     Perhaps require Dart 1.9.] | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code git clone https://github.com/davideast/concious.git es6-shim | ||||
| 
 | ||||
|   .l-sub-section | ||||
|     h3 A word on ES6 | ||||
|     p. | ||||
|       Angular builds on top of ES6, the new specification of the JavaScript language. | ||||
|       Not all ES6 features are available in all browsers. The following es6-shim | ||||
|       repository allows you to use ES6 in the browser today. | ||||
| 
 | ||||
|     p. | ||||
|       Angular is available on npm. Configuring Angular to run ES6 in the browser | ||||
|       requires a build process, detailed here. | ||||
| 
 | ||||
|     p. | ||||
|       The es6-shim package includes Angular and dependencies needed to compile | ||||
|       ES6 in the browser. Think of the es6-shim repository as package rather than a new project. | ||||
|     code. | ||||
|       name: hello_world | ||||
|       version: 0.0.1 | ||||
|       dependencies: | ||||
|         angular2: ">=2.0.0-alpha.6 <3.0.0" | ||||
|         browser: any | ||||
|       transformers: | ||||
|       - angular2 | ||||
|   p. | ||||
|     In the same directory, run <code>pub get</code> | ||||
|     to install the angular2 and browser packages | ||||
|     (along with the packages they depend on): | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code. | ||||
|       > pub get | ||||
|       Resolving dependencies... (7.3s) | ||||
|       + angular2 2.0.0-alpha.6 | ||||
|       + browser 0.10.0+2 | ||||
|       + path 1.3.3 | ||||
|       + stack_trace 1.2.3 | ||||
|       Changed 4 dependencies! | ||||
| 
 | ||||
|   p. | ||||
|     PENDING: Create template? Link to pub/pubspec docs? | ||||
|     Is browser really needed? | ||||
|     TODO: make this an invisible note. | ||||
| 
 | ||||
| // STEP 2 - Import Angular ########################## | ||||
| .l-main-section | ||||
|   h2#section-transpile 2. Import Angular | ||||
| 
 | ||||
|   p. | ||||
|     Create a file named <code>app.es6</code> at the root of the project. | ||||
|     The <code>.es6</code> extension signifies that the file uses ES6 syntax. | ||||
|     Using the ES6 module syntax you can import the required modules from Angular2. | ||||
|     Under the same directory, create a <code>web</code> directory. | ||||
|     Create a file under <code>web</code> named <code>main.dart</code>. | ||||
|     Edit <code>web/main.dart</code> to import the angular2 library: | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code import {Component, Template, bootstrap} from 'angular2/angular2'; | ||||
| 
 | ||||
|   p The above import statement will import the three modules from Angular. These modules load at runtime. | ||||
|     code import 'package:angular2/angular2.dart'; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| // STEP 3 - Create a component ########################## | ||||
| // STEP 3 - Define a component ########################## | ||||
| .l-main-section | ||||
| 
 | ||||
|   h2#section-angular-create-account 3. Create a component | ||||
|   h2#section-angular-create-account 3. Define a component | ||||
| 
 | ||||
|   p. | ||||
|     Components are custom HTML elements. Angular uses components to empower HTML. | ||||
|     Components structure and repre.prettyprint.linenumssent the UI. This quickstart | ||||
|     demonstrates the process of creating a component. This component will have the tag of app. | ||||
|     A component is a custom HTML element. | ||||
|     In this step, you create a component that has the tag <b><app></b>. | ||||
|     The Dart code for a component consists of a class | ||||
|     with annotations that describe the component. | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code <app></app> | ||||
| 
 | ||||
|   p A component consists of two parts; the annotation section and the component controller. | ||||
|   p. | ||||
|     Update <code>web/main.dart</code> to contain the following code, | ||||
|     which defines the app component: | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code. | ||||
|       import {Component, Template, bootstrap} from 'angular2/angular2'; | ||||
|       import 'package:angular2/angular2.dart'; | ||||
| 
 | ||||
|       // Annotation Section | ||||
|       @Component({ | ||||
|         selector: 'app' | ||||
|       }) | ||||
|       @Component( | ||||
|           selector: 'app' | ||||
|       ) | ||||
|       @Template({ | ||||
|         inline: ` | ||||
|           <h1>Hello {{ name }}</h1> | ||||
|         ` | ||||
|         inline: '<h1>Hello {{ name }}</h1>' | ||||
|       }) | ||||
|       // Component Controller | ||||
|       class AppComponent { | ||||
|         constructor() { | ||||
|           this.name = "Alice"; | ||||
|         } | ||||
|         String name = 'Alice'; | ||||
|       } | ||||
| 
 | ||||
|   .l-sub-section | ||||
|     h3 Component Annotations | ||||
|     h3 Annotations | ||||
| 
 | ||||
|     p. | ||||
|       A component annotation provides meta-data about the <code>component</code>. | ||||
|       An annotation can always identified by its at-sign — <code>@</code>. | ||||
|     p. | ||||
|       The <code>@Component</code> annotation defines the HTML tag for the component. | ||||
|       The selector property specifies the tag. The <code>selector</code> property is a CSS selector. | ||||
|       The <code>@Component</code> annotation defines the HTML tag for the component. [PENDING: component controller?] | ||||
|       The <code>selector</code> property specifies the tag. The <code>selector</code> property is a CSS selector. [PENDING: huh?] | ||||
| 
 | ||||
|     p. | ||||
|       The <code>@Template</code> annotation defines the template to apply to the | ||||
|       component. This component uses an inline template, but external templates are | ||||
|       available as well. To use an external template specify a <code>url</code> property | ||||
|       and give it the path to the html file. | ||||
|       available as well. To use an external template, specify a <code>url</code> property | ||||
|       and give it the path to the HTML file. | ||||
| 
 | ||||
|     pre.prettyprint.linenums | ||||
|       code. | ||||
|         @Component({ | ||||
|           selector: 'app' | ||||
|         }) | ||||
|         @Component( | ||||
|             selector: 'app' | ||||
|         ) | ||||
|         @Template({ | ||||
|           inline: ` | ||||
|             <h1>Hello {{ name }}</h1> | ||||
|           ` | ||||
|           inline: '<h1>Hello {{ name }}</h1>' | ||||
|         }) | ||||
| 
 | ||||
|     p. | ||||
|       The component created above has a HTML tag of <code><app></app></code> | ||||
|       and a template of <code><h1>Hello {{ name }}</h1></code>. | ||||
|       The annotations above specify an HTML tag of <code><app></app></code> | ||||
|       and a template of <code><h1>Hello {{ name }}</h1></code>. | ||||
| 
 | ||||
|     p TODO: make double-mustaches work in text (they do work in listings) | ||||
| 
 | ||||
|   .l-sub-section | ||||
|     h3 Component Controller | ||||
|     h3 The template and the component controller | ||||
| 
 | ||||
|     p. | ||||
|       The component controller is the backing of the component's template. A component | ||||
|       controller uses ES6 <code>class</code> syntax. | ||||
|       A template has access to all the public properties and methods | ||||
|       of its component controller. | ||||
|       [PENDING: Do we really want to use the term "component controller"? | ||||
|       If so, set it up beforehand. | ||||
|       In the original text, what does "the backing" mean, and is it | ||||
|       important that we keep it?] | ||||
| 
 | ||||
|     pre.prettyprint.linenums | ||||
|       code | ||||
|       code. | ||||
|         class AppComponent { | ||||
|           constructor() { | ||||
|             this.name = "Alice"; | ||||
|           } | ||||
|           String name = 'Alice'; | ||||
|         } | ||||
| 
 | ||||
|     p. | ||||
|       Templates read from their component controllers. Templates have access to any properties | ||||
|       or functions placed on the component controller. | ||||
| 
 | ||||
|     p. | ||||
|       The template above binds to a <code>name</code> property through the <code>{{ }}</code> | ||||
|       syntax.The body of the constructor assigns "Alice" to the name property. When the | ||||
|       template renders, Alice will appear instead of <code>{{ name }}</code>. | ||||
|       template renders, Alice appears instead of <code>{{ name }}</code>. | ||||
|       [TODO: fix double mustaches] | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -146,20 +145,20 @@ | ||||
| .l-main-section | ||||
|   h2#section-transpile 4. Bootstrap | ||||
| 
 | ||||
|   p The last step to load the component on the page. | ||||
| 
 | ||||
|   .l-sub-section | ||||
|     h3 The <code>bootstrap</code> function | ||||
|     p. | ||||
|       Angular provides a <code>bootstrap</code> function that renders a | ||||
|       component to the page. The <code>bootstrap</code> function takes a | ||||
|       component as a parameter. Any child components inside of the parent | ||||
|       component will render as well. | ||||
| 
 | ||||
|     pre.prettyprint.linenums | ||||
|       code bootstrap(AppComponent); | ||||
| 
 | ||||
|   p. | ||||
|     At the bottom of <code>web/main.dart</code>, | ||||
|     add a <code>main()</code> function | ||||
|     that calls Angular's <code>bootstrap()</code> function. | ||||
|     The argument to <code>bootstrap()</code> is the name of the app class | ||||
|     you defined above: | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code. | ||||
|       main() { | ||||
|         bootstrap(AppComponent); | ||||
|       } | ||||
|   p. | ||||
|     [PENDING: change/remove line numbers. They should start at 12.] | ||||
| 
 | ||||
| // STEP 5 - Declare the HTML ########################## | ||||
| .l-main-section | ||||
| @ -167,77 +166,51 @@ | ||||
|   h2#section-angular-create-account 5. Declare the HTML | ||||
| 
 | ||||
|   p. | ||||
|     Create an <code>index.html</code> file at the root of the project. | ||||
|     Include the <code>es6-shim.js</code> file in the <code>head</code> tag. | ||||
|     Now, declare the app component the <code>body</code>. The es6-shim must | ||||
|     load before any application code. | ||||
|     Create a file named <code>web/index.html</code> that contains | ||||
|     the following code, | ||||
|     which loads <code>main.dart</code> and instantiates the app component: | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code. | ||||
|       <html> | ||||
|         <head> | ||||
|           <title>Angular 2 Quickstart</title> | ||||
|           <script src="/es6-shim/dist/es6-shim.js"></script> | ||||
|         </head> | ||||
|         <body> | ||||
|           <!-- --> | ||||
|           <!-- The app component created in app.es6 --> | ||||
|           <app></app> | ||||
|           <!-- --> | ||||
|         </body> | ||||
|       </html> | ||||
| 
 | ||||
|   .l-sub-section | ||||
|     h3 Load the component module | ||||
|     p. | ||||
|       The last step is to load the module for the app component. | ||||
|       The es6-shim file comes packaged with the System library. | ||||
|       Most browsers today do not support ES6 module loading. System | ||||
|       provides module loading functionality to these browsers. | ||||
| 
 | ||||
|     p. | ||||
|       To load the needed modules, System needs to know where to | ||||
|       load the files from. The paths property in System specifies | ||||
|       the location of the files. | ||||
| 
 | ||||
|     p Tell System about three paths: | ||||
|       ol | ||||
|         li Angular - The Angular framework. | ||||
|         li Runtime assertions - Optional assertions for runtime type checking. | ||||
|         li The app component created above - The component to display on the page. | ||||
| 
 | ||||
|     pre.prettyprint.linenums | ||||
|       code. | ||||
|         <html> | ||||
|         <!doctype html> | ||||
|         <html> | ||||
|           <head> | ||||
|             <title>Angular 2 Quickstart</title> | ||||
|             <script src="/es6-shim/dist/es6-shim.js"></script> | ||||
|           </head> | ||||
|           <body> | ||||
|           <body> | ||||
|             <app></app> | ||||
|             <script type="application/dart" src="main.dart"></script> | ||||
|             <script src="packages/browser/dart.js"></script> | ||||
|           </body> | ||||
|         </html> | ||||
|   p. | ||||
|     [PENDING: When I select a bunch of code, it looks like I select the line #s too, making me fear that they'll get copied. But pasting doesn't include them. Fix!] | ||||
| 
 | ||||
|             <!-- The app component created in app.es6 --> | ||||
|             <app></app> | ||||
| // STEP 5 - Build and run ########################## | ||||
| .l-main-section | ||||
| 
 | ||||
|             <script> | ||||
|               // Rewrite the paths to load the files | ||||
|               System.paths = { | ||||
|                 'angular2/*':'/es6-shim/angular2/*.js', | ||||
|                 'rtts_assert/*': '/es6-shim/rtts_assert/*.js', | ||||
|                 'app': 'app.es6' | ||||
|               }; | ||||
|   h2#section-angular-run-app 5. Build and run your app | ||||
| 
 | ||||
|               // Kick off the application | ||||
|               System.import('app'); | ||||
|             </script> | ||||
|           </body> | ||||
|         </html> | ||||
| 
 | ||||
|     p Run the root of your project on a local server. | ||||
|   p. | ||||
|     You have many options. | ||||
|     One is to run the <code>pub serve</code> | ||||
|     command in the directory | ||||
|     that contains your app's <code>pubspec.yaml</code> file: | ||||
| 
 | ||||
|   pre.prettyprint.linenums | ||||
|     code. | ||||
|       > pub serve | ||||
|       Serving helloworld on http://localhost:8080 | ||||
| 
 | ||||
|   p. | ||||
|     In the browser, go to the index file—for example, | ||||
|     localhost:8080/web/index.html. | ||||
|     [PENDING: This isn't working right now. Fix!] | ||||
| 
 | ||||
| // WHAT'S NEXT... ########################## | ||||
| .l-main-section | ||||
|   h2#section-transpile Great Job! Next Step... | ||||
| 
 | ||||
|   p Learn some template syntax for extra-credit. | ||||
|   p. | ||||
|     Learn some template syntax for extra credit. | ||||
|     [PENDING: really?] | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user