@@ -333,6 +333,15 @@ export function main() {
333
333
val . changeDetector . detectChanges ( ) ;
334
334
expect ( val . dispatcher . loggedValues ) . toEqual ( [ 'bob state:0' ] ) ;
335
335
} ) ;
336
+
337
+ it ( 'should support arguments in pipes' , ( ) => {
338
+ var registry = new FakePipeRegistry ( 'pipe' , ( ) => new MultiArgPipe ( ) ) ;
339
+ var address = new Address ( 'two' ) ;
340
+ var person = new Person ( 'value' , address ) ;
341
+ var val = _createChangeDetector ( "name | pipe:'one':address.city" , person , registry ) ;
342
+ val . changeDetector . detectChanges ( ) ;
343
+ expect ( val . dispatcher . loggedValues ) . toEqual ( [ 'value one two default' ] ) ;
344
+ } ) ;
336
345
} ) ;
337
346
338
347
it ( 'should notify the dispatcher on all changes done' , ( ) => {
@@ -861,7 +870,7 @@ class CountingPipe implements Pipe {
861
870
862
871
supports ( newValue ) { return true ; }
863
872
864
- transform ( value ) { return `${ value } state:${ this . state ++ } ` ; }
873
+ transform ( value , args = null ) { return `${ value } state:${ this . state ++ } ` ; }
865
874
}
866
875
867
876
class OncePipe implements Pipe {
@@ -872,7 +881,7 @@ class OncePipe implements Pipe {
872
881
873
882
onDestroy ( ) { this . destroyCalled = true ; }
874
883
875
- transform ( value ) {
884
+ transform ( value , args = null ) {
876
885
this . called = true ;
877
886
return value ;
878
887
}
@@ -883,15 +892,26 @@ class IdentityPipe implements Pipe {
883
892
884
893
onDestroy ( ) { }
885
894
886
- transform ( value ) { return value ; }
895
+ transform ( value , args = null ) { return value ; }
887
896
}
888
897
889
898
class WrappedPipe implements Pipe {
890
899
supports ( obj ) : boolean { return true ; }
891
900
892
901
onDestroy ( ) { }
893
902
894
- transform ( value ) { return WrappedValue . wrap ( value ) ; }
903
+ transform ( value , args = null ) { return WrappedValue . wrap ( value ) ; }
904
+ }
905
+
906
+ class MultiArgPipe implements Pipe {
907
+ transform ( value , args = null ) {
908
+ var arg1 = args [ 0 ] ;
909
+ var arg2 = args [ 1 ] ;
910
+ var arg3 = args . length > 2 ? args [ 2 ] : 'default' ;
911
+ return `${ value } ${ arg1 } ${ arg2 } ${ arg3 } ` ;
912
+ }
913
+ supports ( obj ) : boolean { return true ; }
914
+ onDestroy ( ) : void { }
895
915
}
896
916
897
917
class FakePipeRegistry extends PipeRegistry {
0 commit comments