fix(change_detection): convert interpolated null values to empty strings
Fixes #3007 Closes #3271
This commit is contained in:
@ -302,6 +302,15 @@ export function main() {
|
||||
expect(val.dispatcher.log).toEqual(['propName=BvalueA']);
|
||||
});
|
||||
|
||||
it('should output empty strings for null values in interpolation', () => {
|
||||
var val = _createChangeDetector('interpolation', new TestData('value'));
|
||||
val.changeDetector.hydrate(new TestData(null), null, null, null);
|
||||
|
||||
val.changeDetector.detectChanges();
|
||||
|
||||
expect(val.dispatcher.log).toEqual(['propName=BA']);
|
||||
});
|
||||
|
||||
it('should escape values in literals that indicate interpolation',
|
||||
() => { expect(_bindSimpleValue('"$"')).toEqual(['propName=$']); });
|
||||
|
||||
|
@ -94,6 +94,19 @@ export function main() {
|
||||
});
|
||||
}));
|
||||
|
||||
it('should update text node with a blank string when interpolation evaluates to null',
|
||||
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
|
||||
tcb.overrideView(MyComp, new viewAnn.View({template: '<div>{{null}}{{ctxProp}}</div>'}))
|
||||
.createAsync(MyComp)
|
||||
.then((rootTC) => {
|
||||
rootTC.componentInstance.ctxProp = null;
|
||||
|
||||
rootTC.detectChanges();
|
||||
expect(rootTC.nativeElement).toHaveText('');
|
||||
async.done();
|
||||
});
|
||||
}));
|
||||
|
||||
it('should consume element binding changes',
|
||||
inject([TestComponentBuilder, AsyncTestCompleter], (tcb: TestComponentBuilder, async) => {
|
||||
tcb.overrideView(MyComp, new viewAnn.View({template: '<div [id]="ctxProp"></div>'}))
|
||||
|
Reference in New Issue
Block a user