Index: pkg/polymer_expressions/lib/polymer_expressions.dart |
diff --git a/pkg/polymer_expressions/lib/polymer_expressions.dart b/pkg/polymer_expressions/lib/polymer_expressions.dart |
index f26c2f3e7e58a91655ac7981b07036be170902de..ac939d8ecb914ca496a07bf9012e5daa8cd48b1e 100644 |
--- a/pkg/polymer_expressions/lib/polymer_expressions.dart |
+++ b/pkg/polymer_expressions/lib/polymer_expressions.dart |
@@ -123,8 +123,9 @@ class _Binding extends Bindable { |
} |
_setValue(v) { |
+ var oldValue = _value; |
_value = _convertValue(v, _scope, _converter); |
- if (_callback != null) _callback(_value); |
+ if (_callback != null && oldValue != _value) _callback(_value); |
} |
static _convertValue(v, scope, converter) { |
@@ -145,7 +146,8 @@ class _Binding extends Bindable { |
set value(v) { |
try { |
- assign(_expr, v, _scope); |
+ var newValue = assign(_expr, v, _scope); |
+ _value = _convertValue(newValue, _scope, _converter); |
} catch (e, s) { |
new Completer().completeError( |
"Error evaluating expression '$_expr': $e", s); |