Index: packages/polymer_expressions/example/streams/collect_key_press.html |
diff --git a/packages/polymer_expressions/example/streams/collect_key_press.html b/packages/polymer_expressions/example/streams/collect_key_press.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d2225f5fe40aa6e3235a568b64b6c7018138c9ca |
--- /dev/null |
+++ b/packages/polymer_expressions/example/streams/collect_key_press.html |
@@ -0,0 +1,41 @@ |
+<!DOCTYPE html> |
+<!-- |
+Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
+for details. All rights reserved. Use of this source code is governed by a |
+BSD-style license that can be found in the LICENSE file. |
+--> |
+ |
+<html> |
+ <body> |
+ <template id="test" repeat="{{ keyPress | collect }}"> |
+ <div>key: {{ }}</div> |
+ </template> |
+ <script type="application/dart"> |
+ import 'dart:async'; |
+ import 'dart:html'; |
+ import 'package:polymer_expressions/polymer_expressions.dart'; |
+ import 'package:polymer_expressions/async.dart'; |
+ import 'package:template_binding/template_binding.dart'; |
+ import 'package:observe/observe.dart'; |
+ |
+ Iterable collect(StreamBinding s) { |
+ var list = new ObservableList(); |
+ s.stream.listen((e) { list.add(e); }); |
+ return list; |
+ } |
+ |
+ main() { |
+ var globals = { |
+ 'keyPress': document.onKeyPress |
+ .map((e) => new String.fromCharCode(e.charCode)), |
+ 'collect': collect, |
+ }; |
+ |
+ templateBind(querySelector('#test')) |
+ ..bindingDelegate = new PolymerExpressions(globals: globals) |
+ ..model = null; |
+ } |
+ </script> |
+ <script src="packages/browser/dart.js"></script> |
+ </body> |
+</html> |