Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: third_party/pkg/angular/demo/todo/web/todo.dart

Issue 257423008: Update all Angular libs (run update_all.sh). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 library todo;
2
3 import 'package:angular/angular.dart';
4
5
6 class Item {
7 String text;
8 bool done;
9
10 Item([this.text = '', this.done = false]);
11
12 bool get isEmpty => text.isEmpty;
13
14 Item clone() => new Item(text, done);
15
16 void clear() {
17 text = '';
18 done = false;
19 }
20 }
21
22
23 // ServerController interface. Logic in main.dart determines which
24 // implementation we should use.
25 abstract class ServerController {
26 init(TodoController todo);
27 }
28
29
30 // An implementation of ServerController that does nothing.
31 class NoServerController implements ServerController {
32 init(TodoController todo) { }
33 }
34
35
36 // An implementation of ServerController that fetches items from
37 // the server over HTTP.
38 class HttpServerController implements ServerController {
39 final Http _http;
40 HttpServerController(this._http);
41
42 init(TodoController todo) {
43 _http(method: 'GET', url: '/todos').then((HttpResponse data) {
44 data.data.forEach((d) {
45 todo.items.add(new Item(d["text"], d["done"]));
46 });
47 });
48 }
49 }
50
51
52 @NgController(
53 selector: '[todo-controller]',
54 publishAs: 'todo')
55 class TodoController {
56 var items = <Item>[];
57 Item newItem;
58
59 TodoController(ServerController serverController) {
60 newItem = new Item();
61 items = [
62 new Item('Write Angular in Dart', true),
63 new Item('Write Dart in Angular'),
64 new Item('Do something useful')
65 ];
66
67 serverController.init(this);
68 }
69
70 // workaround for https://github.com/angular/angular.dart/issues/37
71 dynamic operator [](String key) => key == 'newItem' ? newItem : null;
72
73 void add() {
74 if (newItem.isEmpty) return;
75
76 items.add(newItem.clone());
77 newItem.clear();
78 }
79
80 void markAllDone() {
81 items.forEach((item) => item.done = true);
82 }
83
84 void archiveDone() {
85 items.removeWhere((item) => item.done);
86 }
87
88 String classFor(Item item) => item.done ? 'done' : '';
89
90 int remaining() => items.fold(0, (count, item) => count += item.done ? 0 : 1);
91 }
OLDNEW
« no previous file with comments | « third_party/pkg/angular/demo/todo/web/todo.css ('k') | third_party/pkg/angular/demo/todo/webserver.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698