| Index: example/todomvc/model.dart
|
| diff --git a/example/todomvc/model.dart b/example/todomvc/model.dart
|
| index 7bb52f5ce5528143a1f997010395525ed63657f0..37dc43ae79c1f37fcf96b405a95b1624c51b029b 100644
|
| --- a/example/todomvc/model.dart
|
| +++ b/example/todomvc/model.dart
|
| @@ -4,21 +4,26 @@
|
|
|
| library model;
|
|
|
| +import 'package:web_ui/observe.dart';
|
| +import 'package:web_ui/observe/html.dart';
|
| +
|
| +@observable
|
| class ViewModel {
|
| bool isVisible(Todo todo) => todo != null &&
|
| ((showIncomplete && !todo.done) || (showDone && todo.done));
|
|
|
| - bool showIncomplete = true;
|
| + bool get showIncomplete => locationHash != '#/completed';
|
|
|
| - bool showDone = true;
|
| + bool get showDone => locationHash != '#/active';
|
| }
|
|
|
| final ViewModel viewModel = new ViewModel();
|
|
|
| // The real model:
|
|
|
| +@observable
|
| class AppModel {
|
| - List<Todo> todos = <Todo>[];
|
| + ObservableList<Todo> todos = new ObservableList<Todo>();
|
|
|
| // TODO(jmesserly): remove this once List has a remove method.
|
| void removeTodo(Todo todo) {
|
| @@ -41,12 +46,14 @@ class AppModel {
|
| int get remaining => todos.length - doneCount;
|
|
|
| void clearDone() {
|
| - todos = todos.where((t) => !t.done).toList();
|
| + // TODO(jmesserly): should methods on ObservableList return Observables?
|
| + todos = new ObservableList.from(todos.where((t) => !t.done));
|
| }
|
| }
|
|
|
| final AppModel app = new AppModel();
|
|
|
| +@observable
|
| class Todo {
|
| String task;
|
| bool done = false;
|
|
|