73 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
extends ../../../ts/_cache/guide/architecture.jade
 | 
						|
 | 
						|
block includes
 | 
						|
  include ../_util-fns
 | 
						|
  - var _library_module = 'library'
 | 
						|
  - var _at_angular = 'angular2'
 | 
						|
 | 
						|
:marked
 | 
						|
  Angular is a framework to help us build client applications in HTML and
 | 
						|
  either JavaScript or a language (like Dart or TypeScript) that compiles to JavaScript.
 | 
						|
 | 
						|
block angular-parts
 | 
						|
  :marked
 | 
						|
    Angular 2 for Dart is published as the `angular2` package, which
 | 
						|
    (like many other Dart packages) is available via the Pub tool.
 | 
						|
 | 
						|
block modules-in-dart
 | 
						|
  .callout.is-helpful
 | 
						|
    header Dart difference: Modules are compilation units or packages
 | 
						|
    :marked
 | 
						|
      In this guide, the term _module_ refers to a Dart compilation unit, such
 | 
						|
      as a library, or a package. (If a Dart file has no `library` or `part`
 | 
						|
      directive, then that file itself is a library and thus a compilation
 | 
						|
      unit.) For more information about compilation units, see
 | 
						|
      the chapter on "Libraries and Scripts" in the
 | 
						|
      [Dart Language Specification](https://www.dartlang.org/docs/spec/).
 | 
						|
 | 
						|
block modules-are-optional
 | 
						|
  //- N/A
 | 
						|
 | 
						|
block export-qualifier
 | 
						|
  .callout.is-helpful
 | 
						|
    header Dart difference: Public names are exported by default
 | 
						|
    :marked
 | 
						|
      Contrary to TypeScript, a Dart library always exports all names and
 | 
						|
      declarations in its **public** namespace, making explicit `export`
 | 
						|
      qualifiers unnecessary.
 | 
						|
      
 | 
						|
      When we say that a module _exports_ a declaration, we mean that the
 | 
						|
      declaration is _public_. For more details about name spaces and export
 | 
						|
      statements, see the section on "Exports" in the
 | 
						|
      [Dart Language Specification](https://www.dartlang.org/docs/spec/).
 | 
						|
 | 
						|
block ts-import
 | 
						|
  //- N/A
 | 
						|
 | 
						|
block angular-library-modules
 | 
						|
  :marked
 | 
						|
    Angular ships as a collection of libraries within the
 | 
						|
    [**angular2**](https://pub.dartlang.org/packages/angular2) package.
 | 
						|
 | 
						|
block angular-imports
 | 
						|
  +makeExcerpt('app/app.component.ts', 'import')
 | 
						|
 | 
						|
block ts-decorator
 | 
						|
  :marked
 | 
						|
    Annotations often have configuration parameters.
 | 
						|
    The `@Component` annotation takes parameters to provide the
 | 
						|
    information Angular needs to create and present the component and its view.
 | 
						|
 | 
						|
    Here are a few of the possible `@Component` parameters:
 | 
						|
 | 
						|
block dart-bool
 | 
						|
  .callout.is-helpful
 | 
						|
    header Dart difference: Only true is true
 | 
						|
    :marked
 | 
						|
      In Dart, **the only value that is true is the boolean value `true`**; all
 | 
						|
      other values are false. JavaScript and TypeScript, in contrast, treat values
 | 
						|
      such as 1 and most non-null objects as true. For this reason, the JavaScript
 | 
						|
      and TypeScript versions of this app can use just `selectedHero` as the value
 | 
						|
      of the `*ngIf` expression. The Dart version must use a boolean operator such
 | 
						|
      as `!=` instead.
 |