fix(ElementBinderBuilder): allow a directive to have mutliple bindings
fix #320
This commit is contained in:
		
							parent
							
								
									7027674081
								
							
						
					
					
						commit
						09092b269c
					
				| @ -122,13 +122,14 @@ export class ElementBinderBuilder extends CompileStep { | |||||||
|         var isContentWatch = dirProp[len - 2] === '[' && dirProp[len - 1] === ']'; |         var isContentWatch = dirProp[len - 2] === '[' && dirProp[len - 1] === ']'; | ||||||
|         if (isContentWatch) dirBindingName = dirProp.substring(0, len - 2); |         if (isContentWatch) dirBindingName = dirProp.substring(0, len - 2); | ||||||
|         protoView.bindDirectiveProperty( |         protoView.bindDirectiveProperty( | ||||||
|           directiveIndex++, |           directiveIndex, | ||||||
|           expression, |           expression, | ||||||
|           dirBindingName, |           dirBindingName, | ||||||
|           reflector.setter(dirBindingName), |           reflector.setter(dirBindingName), | ||||||
|           isContentWatch |           isContentWatch | ||||||
|         ); |         ); | ||||||
|       }); |       }); | ||||||
|  |       directiveIndex++; | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -192,7 +192,9 @@ export function main() { | |||||||
|         'boundprop2': 'prop2', |         'boundprop2': 'prop2', | ||||||
|         'boundprop3': 'prop3' |         'boundprop3': 'prop3' | ||||||
|       }); |       }); | ||||||
|       var directives = [SomeDecoratorDirectiveWithBinding, SomeTemplateDirectiveWithBinding, SomeComponentDirectiveWithBinding]; |       var directives = [SomeDecoratorDirectiveWith2Bindings, | ||||||
|  |                         SomeTemplateDirectiveWithBinding, | ||||||
|  |                         SomeComponentDirectiveWithBinding]; | ||||||
|       var protoElementInjector = new ProtoElementInjector(null, 0, directives, true); |       var protoElementInjector = new ProtoElementInjector(null, 0, directives, true); | ||||||
|       var pipeline = createPipeline({ |       var pipeline = createPipeline({ | ||||||
|         propertyBindings: propertyBindings, |         propertyBindings: propertyBindings, | ||||||
| @ -210,7 +212,8 @@ export function main() { | |||||||
|       evalContext.prop3 = 'c'; |       evalContext.prop3 = 'c'; | ||||||
|       changeDetector.detectChanges(); |       changeDetector.detectChanges(); | ||||||
| 
 | 
 | ||||||
|       expect(view.elementInjectors[0].get(SomeDecoratorDirectiveWithBinding).decorProp).toBe('a'); |       expect(view.elementInjectors[0].get(SomeDecoratorDirectiveWith2Bindings).decorProp).toBe('a'); | ||||||
|  |       expect(view.elementInjectors[0].get(SomeDecoratorDirectiveWith2Bindings).decorProp2).toBe('b'); | ||||||
|       expect(view.elementInjectors[0].get(SomeTemplateDirectiveWithBinding).templProp).toBe('b'); |       expect(view.elementInjectors[0].get(SomeTemplateDirectiveWithBinding).templProp).toBe('b'); | ||||||
|       expect(view.elementInjectors[0].get(SomeComponentDirectiveWithBinding).compProp).toBe('c'); |       expect(view.elementInjectors[0].get(SomeComponentDirectiveWithBinding).compProp).toBe('c'); | ||||||
|     }); |     }); | ||||||
| @ -262,8 +265,25 @@ class SomeDecoratorDirective { | |||||||
| }) | }) | ||||||
| class SomeDecoratorDirectiveWithBinding { | class SomeDecoratorDirectiveWithBinding { | ||||||
|   decorProp; |   decorProp; | ||||||
|  |   decorProp2; | ||||||
|   constructor() { |   constructor() { | ||||||
|     this.decorProp = null; |     this.decorProp = null; | ||||||
|  |     this.decorProp2 = null; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @Decorator({ | ||||||
|  |   bind: { | ||||||
|  |     'boundprop1': 'decorProp', | ||||||
|  |     'boundprop2': 'decorProp2' | ||||||
|  |   } | ||||||
|  | }) | ||||||
|  | class SomeDecoratorDirectiveWith2Bindings { | ||||||
|  |   decorProp; | ||||||
|  |   decorProp2; | ||||||
|  |   constructor() { | ||||||
|  |     this.decorProp = null; | ||||||
|  |     this.decorProp2 = null; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user