From b892275c2bc08ac461b4458ee32bebc02b538095 Mon Sep 17 00:00:00 2001 From: Kathy Walrath Date: Mon, 2 Mar 2015 18:42:31 -0800 Subject: [PATCH] Latest Dart info (still needs work) --- public/docs/dart/latest/_data.json | 6 +- public/docs/dart/latest/api.jade | 3 +- public/docs/dart/latest/help.jade | 2 +- public/docs/dart/latest/quickstart.jade | 279 +++++++++++------------- 4 files changed, 131 insertions(+), 159 deletions(-) diff --git a/public/docs/dart/latest/_data.json b/public/docs/dart/latest/_data.json index 155fe09c17..710417c4f1 100644 --- a/public/docs/dart/latest/_data.json +++ b/public/docs/dart/latest/_data.json @@ -3,7 +3,7 @@ "icon": "home", "title": "Angular Docs", "menuTitle": "Docs Home", - "banner": "Angular 2 is currently in Alpha Preview. We reccomend using Angular 1.X for production applications." + "banner": "Angular 2 is currently in Alpha Preview. We recommend using AngularDart 1.X 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 Angular 1.X Resources please visit Angularjs.org." + "banner": "Angular 2 is currently in Alpha Preview. For AngularDart 1.X please visit angulardart.org." }, "api": { @@ -26,4 +26,4 @@ "icon": "chat", "title": "Help & Support" } -} \ No newline at end of file +} diff --git a/public/docs/dart/latest/api.jade b/public/docs/dart/latest/api.jade index e652be232b..f39b9e7df7 100644 --- a/public/docs/dart/latest/api.jade +++ b/public/docs/dart/latest/api.jade @@ -10,5 +10,4 @@ h3 Angular 1.X for Production p. If you're building a production app today, please - use Angular 1.X. - These versions of Angular are production ready and available today. + use AngularDart 1.X. diff --git a/public/docs/dart/latest/help.jade b/public/docs/dart/latest/help.jade index 2ad2430887..20a37e8028 100644 --- a/public/docs/dart/latest/help.jade +++ b/public/docs/dart/latest/help.jade @@ -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 diff --git a/public/docs/dart/latest/quickstart.jade b/public/docs/dart/latest/quickstart.jade index 6deedf14fe..36edf1c728 100644 --- a/public/docs/dart/latest/quickstart.jade +++ b/public/docs/dart/latest/quickstart.jade @@ -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 + download Dart. + Then return here. + // STEP 1 - Install Angular ########################## .l-main-section h2#section-install-angular 1. Install Angular p. - Angular is still unpackaged and in alpha. 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 - es6-shim GitHub repository. - This repository will provide a faster start. es6-shim 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 pubspec.yaml 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 pub get + 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 app.es6 at the root of the project. - The .es6 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 web directory. + Create a file under web named main.dart. + Edit web/main.dart 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 <app>. + 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 web/main.dart 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 component. - An annotation can always identified by its at-sign — @. - p. - The @Component annotation defines the HTML tag for the component. - The selector property specifies the tag. The selector property is a CSS selector. + The @Component annotation defines the HTML tag for the component. [PENDING: component controller?] + The selector property specifies the tag. The selector property is a CSS selector. [PENDING: huh?] p. The @Template 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 url property - and give it the path to the html file. + available as well. To use an external template, specify a url 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 <app></app> - and a template of <h1>Hello {{ name }}</h1>. + The annotations above specify an HTML tag of <app></app> + and a template of <h1>Hello {{ name }}</h1>. + + 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 class 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 name property through the {{ }} syntax.The body of the constructor assigns "Alice" to the name property. When the - template renders, Alice will appear instead of {{ name }}. + template renders, Alice appears instead of {{ name }}. + [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 bootstrap function - p. - Angular provides a bootstrap function that renders a - component to the page. The bootstrap 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 web/main.dart, + add a main() function + that calls Angular's bootstrap() function. + The argument to bootstrap() 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 index.html file at the root of the project. - Include the es6-shim.js file in the head tag. - Now, declare the app component the body. The es6-shim must - load before any application code. + Create a file named web/index.html that contains + the following code, + which loads main.dart 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 pub serve + command in the directory + that contains your app's pubspec.yaml 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?]