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

Unified Diff: pkg/template_binding/lib/src/template_iterator.dart

Issue 211393006: Enables codegen support in polymer (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/template_binding/lib/src/mustache_tokens.dart ('k') | pkg/template_binding/pubspec.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/template_binding/lib/src/template_iterator.dart
diff --git a/pkg/template_binding/lib/src/template_iterator.dart b/pkg/template_binding/lib/src/template_iterator.dart
index 24c1cacacd9c9b0432ae6bc991c05a014d9bd12e..cc519f2fb70cd78b576a2a7001873df83bad5131 100644
--- a/pkg/template_binding/lib/src/template_iterator.dart
+++ b/pkg/template_binding/lib/src/template_iterator.dart
@@ -17,13 +17,21 @@ part of template_binding;
// See: https://github.com/polymer/TemplateBinding/issues/59
bool _toBoolean(value) => null != value && false != value;
+// Dart note: this was added to decouple the MustacheTokens.parse function from
+// the rest of template_binding.
+_getDelegateFactory(name, node, delegate) {
+ if (delegate == null) return null;
+ return (pathString) => delegate.prepareBinding(pathString, name, node);
+}
+
_InstanceBindingMap _getBindings(Node node, BindingDelegate delegate) {
if (node is Element) {
return _parseAttributeBindings(node, delegate);
}
if (node is Text) {
- var tokens = MustacheTokens.parse(node.text, 'text', node, delegate);
+ var tokens = MustacheTokens.parse(node.text,
+ _getDelegateFactory('text', node, delegate));
if (tokens != null) return new _InstanceBindingMap(['text', tokens]);
}
@@ -46,7 +54,7 @@ MustacheTokens _parseWithDefault(Element element, String name,
var v = element.attributes[name];
if (v == '') v = '{{}}';
- return MustacheTokens.parse(v, name, element, delegate);
+ return MustacheTokens.parse(v, _getDelegateFactory(name, element, delegate));
}
_InstanceBindingMap _parseAttributeBindings(Element element,
@@ -72,7 +80,8 @@ _InstanceBindingMap _parseAttributeBindings(Element element,
return;
}
- var tokens = MustacheTokens.parse(value, name, element, delegate);
+ var tokens = MustacheTokens.parse(value,
+ _getDelegateFactory(name, element, delegate));
if (tokens != null) {
if (bindings == null) bindings = [];
bindings..add(name)..add(tokens);
@@ -88,7 +97,8 @@ _InstanceBindingMap _parseAttributeBindings(Element element,
// Treat <template if> as <template bind if>
if (result._if != null && result._bind == null && result._repeat == null) {
- result._bind = MustacheTokens.parse('{{}}', 'bind', element, delegate);
+ result._bind = MustacheTokens.parse('{{}}',
+ _getDelegateFactory('bind', element, delegate));
}
return result;
« no previous file with comments | « pkg/template_binding/lib/src/mustache_tokens.dart ('k') | pkg/template_binding/pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698