Index: pkg/template_binding/lib/src/text.dart |
diff --git a/pkg/template_binding/lib/src/text.dart b/pkg/template_binding/lib/src/text.dart |
index ecb25814d0cdf5f603b0ebcee3ece0930c88f01c..1f94683d8973ef31e5ddccdc771b55331878adbd 100644 |
--- a/pkg/template_binding/lib/src/text.dart |
+++ b/pkg/template_binding/lib/src/text.dart |
@@ -8,20 +8,24 @@ part of template_binding; |
class _TextExtension extends NodeBindExtension { |
_TextExtension(Text node) : super._(node); |
- NodeBinding bind(String name, model, [String path]) { |
+ bind(String name, value, {bool oneTime: false}) { |
// Dart note: 'text' instead of 'textContent' to match the DOM property. |
if (name != 'text') { |
- return super.bind(name, model, path); |
+ return super.bind(name, value, oneTime: oneTime); |
} |
+ if (oneTime) { |
+ return _updateText(value); |
+ } |
+ |
unbind(name); |
- return bindings[name] = new _TextBinding(_node, model, path); |
+ _open(value, _updateText); |
+ return bindings[name] = value; |
} |
-} |
-class _TextBinding extends NodeBinding { |
- _TextBinding(node, model, path) : super(node, 'text', model, path); |
- |
- void valueChanged(newValue) { |
- node.text = sanitizeBoundValue(newValue); |
+ _updateText(value) { |
+ _node.text = _sanitizeValue(value); |
} |
} |
+ |
+/** Called to sanitize the value before it is assigned into the property. */ |
+_sanitizeValue(value) => value == null ? '' : '$value'; |