fix(transformer): Fix string interpolation for bindings.

Previously it did not stringify properties and used `+` instead of ` `.
This commit is contained in:
Jacob MacDonald
2015-07-01 13:20:12 -07:00
parent 582551bea9
commit 311b47720b
12 changed files with 62 additions and 22 deletions
@@ -4,7 +4,9 @@ import 'package:angular2/src/core/annotations_impl/annotations.dart';
import 'package:angular2/src/core/annotations_impl/view.dart';
@Component(selector: '[soup]')
@View(template: 'Salad')
@View(template: 'Salad: {{myNum}} is awesome')
class MyComponent {
int myNum;
MyComponent();
}
@@ -17,9 +17,11 @@ void initReflector(reflector) {
'parameters': const [],
'annotations': const [
const Component(selector: '[soup]'),
const View(template: 'Salad')
const View(template: 'Salad: {{myNum}} is awesome')
]
});
})
..registerGetters({'myNum': (o) => o.myNum})
..registerSetters({'myNum': (o, v) => o.myNum = v});
_gen.preGeneratedProtoDetectors['MyComponent_comp_0'] =
_MyComponent_ChangeDetector0.newProtoChangeDetector;
}
@@ -31,6 +33,8 @@ class _MyComponent_ChangeDetector0 extends _gen.AbstractChangeDetector {
dynamic _locals = null;
dynamic _alreadyChecked = false;
MyComponent _context = null;
dynamic _myNum0 = _gen.ChangeDetectionUtil.uninitialized();
dynamic _interpolate1 = _gen.ChangeDetectionUtil.uninitialized();
_MyComponent_ChangeDetector0(this._dispatcher, this._pipeRegistry,
this._protos, this._directiveRecords)
@@ -41,12 +45,44 @@ class _MyComponent_ChangeDetector0 extends _gen.AbstractChangeDetector {
_gen.ChangeDetectionUtil.throwDehydrated();
}
var context = null;
var myNum0 = null;
var interpolate1 = null;
var change_context = false;
var change_myNum0 = false;
var change_interpolate1 = false;
var isChanged = false;
var currentProto;
var changes = null;
context = _context;
currentProto = _protos[0];
myNum0 = context.myNum;
if (!_gen.looseIdentical(myNum0, _myNum0)) {
change_myNum0 = true;
_myNum0 = myNum0;
}
if (change_myNum0) {
currentProto = _protos[1];
interpolate1 = "Salad: " "${myNum0 == null ? "" : myNum0}" " is awesome";
if (!_gen.looseIdentical(interpolate1, _interpolate1)) {
change_interpolate1 = true;
if (throwOnChange) {
_gen.ChangeDetectionUtil.throwOnChange(currentProto,
_gen.ChangeDetectionUtil.simpleChange(
_interpolate1, interpolate1));
}
_dispatcher.notifyOnBinding(currentProto.bindingRecord, interpolate1);
_interpolate1 = interpolate1;
}
} else {
interpolate1 = _interpolate1;
}
changes = null;
isChanged = false;
_alreadyChecked = true;
}
@@ -65,6 +101,8 @@ class _MyComponent_ChangeDetector0 extends _gen.AbstractChangeDetector {
void dehydrate() {
_context = null;
_myNum0 = _gen.ChangeDetectionUtil.uninitialized();
_interpolate1 = _gen.ChangeDetectionUtil.uninitialized();
_locals = null;
}