parent
217c690781
commit
28386efb50
|
@ -0,0 +1,22 @@
|
||||||
|
library pipe_examples.chained_pipes;
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
|
||||||
|
@Component(selector: 'chained-pipes')
|
||||||
|
@View(
|
||||||
|
template: '''
|
||||||
|
<p>
|
||||||
|
The chained hero's birthday is
|
||||||
|
{{ birthday | date | uppercase}}
|
||||||
|
</p>
|
||||||
|
The chained hero's birthday is
|
||||||
|
{{ birthday | date:'fullDate' }}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The chained hero's birthday is
|
||||||
|
{{ ( birthday | date:'fullDate' ) | uppercase}}
|
||||||
|
</p>
|
||||||
|
''')
|
||||||
|
class ChainedPipes {
|
||||||
|
DateTime birthday = new DateTime(1988, 4, 15); // April 15, 1988
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
library pipes_examples.exponential_strength_pipe;
|
||||||
|
|
||||||
|
import 'dart:math' as math;
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Raise the value exponentially
|
||||||
|
* Takes a value that defaults to 0 and an exponent argument that defaults to 1.
|
||||||
|
* Checks for value to be a string or number.
|
||||||
|
* Usage:
|
||||||
|
* value | exponentialStrength:exponent
|
||||||
|
* Example:
|
||||||
|
* {{ 2 | exponentialStrength:10}}
|
||||||
|
* formats to: 1024
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Pipe(name: 'exponentialStrength')
|
||||||
|
@Injectable()
|
||||||
|
class ExponentialStrengthPipe {
|
||||||
|
transform(dynamic value, [List<dynamic> args]) {
|
||||||
|
var v = int.parse(value.toString(), onError: (source) => 0);
|
||||||
|
var p = args.isEmpty
|
||||||
|
? 1
|
||||||
|
: int.parse(args.first.toString(), onError: (source) => 1);
|
||||||
|
return math.pow(v, p);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
library pipe_examples.fetch_json_pipe;
|
||||||
|
|
||||||
|
import 'dart:html';
|
||||||
|
import 'dart:async';
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
|
||||||
|
@Pipe(name: 'fetch', pure: false)
|
||||||
|
@Injectable()
|
||||||
|
class FetchJsonPipe {
|
||||||
|
dynamic _fetchedValue;
|
||||||
|
Future<dynamic> _fetchPromise;
|
||||||
|
transform(dynamic value, [List<dynamic> args]) {
|
||||||
|
if (_fetchPromise == null) {
|
||||||
|
_fetchPromise = new Future(() async {
|
||||||
|
_fetchedValue = JSON.decode(await HttpRequest.getString(value));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return _fetchedValue;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
library pipe_examples.hero_birthday;
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
|
||||||
|
@Component(selector: 'hero-birthday')
|
||||||
|
@View(
|
||||||
|
template: '''
|
||||||
|
<p>The hero's birthday is {{ birthday | date:format }}</p>
|
||||||
|
<button (click)="toggleFormat()">Toggle Format</button>
|
||||||
|
''')
|
||||||
|
class HeroBirthday {
|
||||||
|
DateTime birthday = new DateTime(1988, 4, 15); // April 15, 1988
|
||||||
|
String format = 'shortDate';
|
||||||
|
String nextFormat = 'fullDate';
|
||||||
|
|
||||||
|
toggleFormat() {
|
||||||
|
var next = this.format;
|
||||||
|
format = this.nextFormat;
|
||||||
|
nextFormat = next;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
library pipe_examples.heroes_list;
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
import 'package:pipe_examples/fetch_json_pipe.dart';
|
||||||
|
|
||||||
|
@Component(selector: 'heroes-list')
|
||||||
|
@View(
|
||||||
|
template: '''
|
||||||
|
<p>Heroes: {{'heroes.json' | fetch | json}}</p>
|
||||||
|
''',
|
||||||
|
pipes: const [FetchJsonPipe])
|
||||||
|
class HeroesList {}
|
|
@ -0,0 +1,17 @@
|
||||||
|
library pipe_examples.my_hero;
|
||||||
|
|
||||||
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
|
||||||
|
@Component(selector: 'my-hero')
|
||||||
|
@View(
|
||||||
|
template: '''
|
||||||
|
<p>Message: {{delayedMessage | async}}</p>
|
||||||
|
''')
|
||||||
|
class MyHero {
|
||||||
|
Future<String> delayedMessage =
|
||||||
|
new Future.delayed(new Duration(milliseconds: 500), () {
|
||||||
|
return 'You are my Hero!';
|
||||||
|
});
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
library pipe_examples.power_boost_calculator;
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
import 'package:pipe_examples/exponential_strength_pipe.dart';
|
||||||
|
|
||||||
|
@Component(selector: 'power-boost-calculator')
|
||||||
|
@View(
|
||||||
|
template: '''
|
||||||
|
<h2>Power Boost Calculator</h2>
|
||||||
|
<div>Normal power: <input [(ng-model)]="power"></div>
|
||||||
|
<div>Boost factor: <input [(ng-model)]="factor"></div>
|
||||||
|
<p>
|
||||||
|
Super Hero Power: {{power | exponentialStrength: factor}}
|
||||||
|
</p>
|
||||||
|
''',
|
||||||
|
pipes: const [ExponentialStrengthPipe],
|
||||||
|
directives: const [FORM_DIRECTIVES])
|
||||||
|
class PowerBoostCalculator {
|
||||||
|
int power = 5;
|
||||||
|
int factor = 1;
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
library pipe_examples.power_booster;
|
||||||
|
|
||||||
|
import 'package:angular2/angular2.dart';
|
||||||
|
import 'package:pipe_examples/exponential_strength_pipe.dart';
|
||||||
|
|
||||||
|
@Component(selector: 'power-booster')
|
||||||
|
@View(
|
||||||
|
template: '''
|
||||||
|
<p>Super power boost: {{2 | exponentialStrength: 10}}</p>
|
||||||
|
''',
|
||||||
|
pipes: const [ExponentialStrengthPipe])
|
||||||
|
class PowerBooster {}
|
|
@ -0,0 +1,9 @@
|
||||||
|
name: pipe_examples
|
||||||
|
description: Pipes Example
|
||||||
|
version: 0.0.1
|
||||||
|
dependencies:
|
||||||
|
angular2: 2.0.0-alpha.45
|
||||||
|
browser: ^0.10.0
|
||||||
|
transformers:
|
||||||
|
- angular2:
|
||||||
|
entry_points: web/main.dart
|
|
@ -0,0 +1,17 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"id":1,
|
||||||
|
"firstName":"Eenie",
|
||||||
|
"lastName":"Toe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":2,
|
||||||
|
"firstName":"Meenie",
|
||||||
|
"lastName":"Toe"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id":3,
|
||||||
|
"firstName":"Miny",
|
||||||
|
"lastName":"Toe"
|
||||||
|
}
|
||||||
|
]
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Pipes Example</title>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
<script async src="main.dart" type="application/dart"></script>
|
||||||
|
<script async src="packages/browser/dart.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<hero-birthday></hero-birthday>
|
||||||
|
<chained-pipes></chained-pipes>
|
||||||
|
<power-booster></power-booster>
|
||||||
|
<power-boost-calculator></power-boost-calculator>
|
||||||
|
<my-hero></my-hero>
|
||||||
|
<heroes-list></heroes-list>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,16 @@
|
||||||
|
import 'package:angular2/bootstrap.dart';
|
||||||
|
import 'package:pipe_examples/hero_birthday.dart';
|
||||||
|
import 'package:pipe_examples/chained_pipes.dart';
|
||||||
|
import 'package:pipe_examples/power_booster.dart';
|
||||||
|
import 'package:pipe_examples/power_boost_calculator.dart';
|
||||||
|
import 'package:pipe_examples/my_hero.dart';
|
||||||
|
import 'package:pipe_examples/heroes_list.dart';
|
||||||
|
|
||||||
|
main() {
|
||||||
|
bootstrap(HeroBirthday);
|
||||||
|
bootstrap(ChainedPipes);
|
||||||
|
bootstrap(PowerBooster);
|
||||||
|
bootstrap(PowerBoostCalculator);
|
||||||
|
bootstrap(MyHero);
|
||||||
|
bootstrap(HeroesList);
|
||||||
|
}
|
Loading…
Reference in New Issue