This repository was archived by the owner on Apr 12, 2024. It is now read-only.
File tree 2 files changed +28
-3
lines changed
2 files changed +28
-3
lines changed Original file line number Diff line number Diff line change @@ -585,12 +585,12 @@ function $RootScopeProvider(){
585
585
$emit : function ( name , args ) {
586
586
var empty = [ ] ,
587
587
namedListeners ,
588
- canceled = false ,
589
588
scope = this ,
590
589
event = {
591
590
name : name ,
592
591
targetScope : scope ,
593
- cancel : function ( ) { canceled = true ; }
592
+ cancel : function ( ) { event . cancelled = true ; } ,
593
+ cancelled : false
594
594
} ,
595
595
listenerArgs = concat ( [ event ] , arguments , 1 ) ,
596
596
i , length ;
@@ -601,14 +601,16 @@ function $RootScopeProvider(){
601
601
for ( i = 0 , length = namedListeners . length ; i < length ; i ++ ) {
602
602
try {
603
603
namedListeners [ i ] . apply ( null , listenerArgs ) ;
604
- if ( canceled ) return ;
604
+ if ( event . cancelled ) return event ;
605
605
} catch ( e ) {
606
606
$exceptionHandler ( e ) ;
607
607
}
608
608
}
609
609
//traverse upwards
610
610
scope = scope . $parent ;
611
611
} while ( scope ) ;
612
+
613
+ return event ;
612
614
} ,
613
615
614
616
@@ -662,6 +664,8 @@ function $RootScopeProvider(){
662
664
}
663
665
}
664
666
} while ( ( current = next ) ) ;
667
+
668
+ return event ;
665
669
}
666
670
} ;
667
671
Original file line number Diff line number Diff line change @@ -658,6 +658,18 @@ describe('Scope', function() {
658
658
child . $emit ( 'abc' , 'arg1' , 'arg2' ) ;
659
659
} ) ;
660
660
661
+
662
+ it ( 'should return event object with cancelled property' , function ( ) {
663
+ child . $on ( 'some' , function ( event ) {
664
+ event . cancel ( ) ;
665
+ } ) ;
666
+
667
+ var result = grandChild . $emit ( 'some' ) ;
668
+ expect ( result ) . toBeDefined ( ) ;
669
+ expect ( result . cancelled ) . toBe ( true ) ;
670
+ } ) ;
671
+
672
+
661
673
describe ( 'event object' , function ( ) {
662
674
it ( 'should have methods/properties' , function ( ) {
663
675
var event ;
@@ -752,6 +764,15 @@ describe('Scope', function() {
752
764
$rootScope . $broadcast ( 'fooEvent' ) ;
753
765
expect ( log ) . toBe ( '' ) ;
754
766
} ) ) ;
767
+
768
+
769
+ it ( 'should return event object' , function ( ) {
770
+ var result = child1 . $broadcast ( 'some' ) ;
771
+
772
+ expect ( result ) . toBeDefined ( ) ;
773
+ expect ( result . name ) . toBe ( 'some' ) ;
774
+ expect ( result . targetScope ) . toBe ( child1 ) ;
775
+ } ) ;
755
776
} ) ;
756
777
757
778
You can’t perform that action at this time.
0 commit comments