diff --git a/public/docs/_examples/structural-directives/dart/lib/heavy_loader_component.dart b/public/docs/_examples/structural-directives/dart/lib/heavy_loader_component.dart new file mode 100644 index 0000000000..ecf0158c9e --- /dev/null +++ b/public/docs/_examples/structural-directives/dart/lib/heavy_loader_component.dart @@ -0,0 +1,31 @@ +// #docregion +import 'package:angular2/angular2.dart'; +import 'dart:async'; + +int nextId = 1; + +@Component( + selector: 'heavy-loader', + template: 'heavy loader #{{id}} on duty!') +class HeavyLoaderComponent implements OnInit, OnDestroy { + int id = nextId++; + @Input() List logs; + + // Mock todo: get 10,000 rows of data from the server + ngOnInit() => _log( + "heavy-loader $id initialized, loading 10,000 rows of data from the server"); + + // Mock todo: clean-up + ngOnDestroy() => _log("heavy-loader $id destroyed, cleaning up"); + + _log(String msg) { + logs.add(msg); + _tick(); + } + + /// Triggers the next round of Angular change detection + /// after one turn of the browser event loop + /// ensuring display of msg added in onDestroy + _tick() => new Future(() {}); +} +// #enddocregion diff --git a/public/docs/_examples/structural-directives/dart/lib/structural_directives_component.dart b/public/docs/_examples/structural-directives/dart/lib/structural_directives_component.dart new file mode 100644 index 0000000000..7264175143 --- /dev/null +++ b/public/docs/_examples/structural-directives/dart/lib/structural_directives_component.dart @@ -0,0 +1,21 @@ +// #docplaster +// #docregion +import 'package:angular2/angular2.dart'; +import 'unless_directive.dart'; +import 'heavy_loader_component.dart'; + +@Component( + selector: 'structural-directives', + templateUrl: 'structural_directives_component.html', + styles: const ['button { min-width: 100px; }'], + directives: const [UnlessDirective, HeavyLoaderComponent]) +class StructuralDirectivesComponent { + List heroes = ['Mr. Nice', 'Narco', 'Bombasto']; + bool condition = true; + bool isVisible = true; + List logs = []; + String status = 'ready'; + + get hero => heroes[0]; +} +//#enddocregion diff --git a/public/docs/_examples/structural-directives/dart/lib/structural_directives_component.html b/public/docs/_examples/structural-directives/dart/lib/structural_directives_component.html new file mode 100644 index 0000000000..529803f379 --- /dev/null +++ b/public/docs/_examples/structural-directives/dart/lib/structural_directives_component.html @@ -0,0 +1,109 @@ + + +

Structural Directives

+ + + +
{{hero}}
+
{{hero}}
+ + +
+ + + +
+ + + +
+ + + + +

+ condition is true and ngIf is true. +

+

+ condition is false and ngIf is false. +

+ + +

+ condition is false and myUnless is true. +

+ +

+ condition is true and myUnless is false. +

+ + +
+ + +
+ + +
+ +
+ + +
+ +

heavy-loader log:

+
{{message}}
+ + +
+ + +

+ Hip! +

+ +

+ Hooray! +

+ + +
+ + + + +

+ Our heroes are true! +

+ + + + + +
+ + + + + +
{{ hero }}
+ + + + + diff --git a/public/docs/_examples/structural-directives/dart/lib/unless_directive.dart b/public/docs/_examples/structural-directives/dart/lib/unless_directive.dart new file mode 100644 index 0000000000..9f62f93085 --- /dev/null +++ b/public/docs/_examples/structural-directives/dart/lib/unless_directive.dart @@ -0,0 +1,32 @@ +// #docplaster +// #docregion +// #docregion unless-declaration +import 'package:angular2/angular2.dart'; +// #enddocregion unless-declaration + +// #docregion unless-declaration +@Directive(selector: '[myUnless]') +class UnlessDirective { + // #enddocregion unless-declaration + + // #docregion unless-constructor + TemplateRef _templateRef; + ViewContainerRef _viewContainer; + + UnlessDirective(this._templateRef, this._viewContainer); + // #enddocregion unless-constructor + + // #docregion unless-set + @Input() + set myUnless(bool condition) { + if (!condition) { + _viewContainer.createEmbeddedView(_templateRef); + } else { + _viewContainer.clear(); + } + } + // #enddocregion unless-set + // #docregion unless-declaration +} +// #enddocregion unless-declaration +// #enddocregion diff --git a/public/docs/_examples/structural-directives/dart/pubspec.yaml b/public/docs/_examples/structural-directives/dart/pubspec.yaml new file mode 100644 index 0000000000..ddaafc0fc2 --- /dev/null +++ b/public/docs/_examples/structural-directives/dart/pubspec.yaml @@ -0,0 +1,14 @@ +name: structural_directives +description: Structural directives example +version: 0.0.1 +environment: + sdk: '>=1.13.0 <2.0.0' +dependencies: + angular2: 2.0.0-beta.1 + browser: ^0.10.0 + dart_to_js_script_rewriter: ^0.1.0 +transformers: +- angular2: + platform_directives: 'package:angular2/common.dart#CORE_DIRECTIVES' + entry_points: web/main.dart +- dart_to_js_script_rewriter diff --git a/public/docs/_examples/structural-directives/dart/web/index.html b/public/docs/_examples/structural-directives/dart/web/index.html new file mode 100644 index 0000000000..fbf0f45df3 --- /dev/null +++ b/public/docs/_examples/structural-directives/dart/web/index.html @@ -0,0 +1,15 @@ + + + + + + Angular 2 Structural Directives + + + + + + Loading... + + + diff --git a/public/docs/_examples/structural-directives/dart/web/main.dart b/public/docs/_examples/structural-directives/dart/web/main.dart new file mode 100644 index 0000000000..2c00f66c65 --- /dev/null +++ b/public/docs/_examples/structural-directives/dart/web/main.dart @@ -0,0 +1,7 @@ +// #docregion +import 'package:angular2/bootstrap.dart'; +import 'package:structural_directives/structural_directives_component.dart'; + +main() { + bootstrap(StructuralDirectivesComponent); +}