- AngularDart : 4.0.0
- Dart : 1.24.1
Loading…
(html)
<head>
.....
<script defer src="main.dart" type="application/dart"></script>
<script defer src="packages/browser/dart.js"></script>
</head>
<body>
<my-app>Loading...</my-app>
</body>
(pubspec.yaml)
.....
environment:
sdk: '>=1.24.0
(main.dart)
import 'package:angular/angular.dart';
import 'orderby_pipe.dart';
@Component(
selector: 'my-app',
template: '''
<table class="table">
<thead>
<tr><th>Product Name</th><th>Product Price</th></tr>
</thead>
<tbody>
<tr *ngFor="let item of products | orderby: key">
<td>{{item["name"]}}</td>
<td>{{item["price"] | currency:'JPY':true}}</td>
</tr>
</tbody>
</table>
''',
directives: const [CORE_DIRECTIVES],
pipes: const [COMMON_PIPES, OrderbyPipe]
)
class AppComponent {
List<Map> products = [
{ "name": "digital camera-A","price": 8500},
{ "name": "digital camera-D","price": 3500},
{ "name": "computer-B" ,"price": 15900},
{ "name": "digital camera-B","price": 9800},
{ "name": "computer-D" ,"price": 5900},
{ "name": "computer-C" ,"price": 25900},
{ "name": "computer-A" ,"price": 14900}
];
String key = 'price';
}
void main() {
bootstrap(AppComponent);
}
(orderby_pipe.dart)
import 'package:angular/angular.dart';
@Pipe('orderby')
class OrderbyPipe extends PipeTransform {
List<Map> transform(List<Map> array, String key) {
array.sort((Map a, Map b) {
if (a[key] < b[key]) {
return -1;
} else if (a[key] > b[key]) {
return 1;
} else {
return 0;
}
});
return array;
}
}