This repository was archived by the owner on Apr 12, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +28
-3
lines changed
Expand file tree Collapse file tree 2 files changed +28
-3
lines changed Original file line number Diff line number Diff line change @@ -585,12 +585,12 @@ function $RootScopeProvider(){
585585 $emit : function ( name , args ) {
586586 var empty = [ ] ,
587587 namedListeners ,
588- canceled = false ,
589588 scope = this ,
590589 event = {
591590 name : name ,
592591 targetScope : scope ,
593- cancel : function ( ) { canceled = true ; }
592+ cancel : function ( ) { event . cancelled = true ; } ,
593+ cancelled : false
594594 } ,
595595 listenerArgs = concat ( [ event ] , arguments , 1 ) ,
596596 i , length ;
@@ -601,14 +601,16 @@ function $RootScopeProvider(){
601601 for ( i = 0 , length = namedListeners . length ; i < length ; i ++ ) {
602602 try {
603603 namedListeners [ i ] . apply ( null , listenerArgs ) ;
604- if ( canceled ) return ;
604+ if ( event . cancelled ) return event ;
605605 } catch ( e ) {
606606 $exceptionHandler ( e ) ;
607607 }
608608 }
609609 //traverse upwards
610610 scope = scope . $parent ;
611611 } while ( scope ) ;
612+
613+ return event ;
612614 } ,
613615
614616
@@ -662,6 +664,8 @@ function $RootScopeProvider(){
662664 }
663665 }
664666 } while ( ( current = next ) ) ;
667+
668+ return event ;
665669 }
666670 } ;
667671
Original file line number Diff line number Diff line change @@ -658,6 +658,18 @@ describe('Scope', function() {
658658 child . $emit ( 'abc' , 'arg1' , 'arg2' ) ;
659659 } ) ;
660660
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+
661673 describe ( 'event object' , function ( ) {
662674 it ( 'should have methods/properties' , function ( ) {
663675 var event ;
@@ -752,6 +764,15 @@ describe('Scope', function() {
752764 $rootScope . $broadcast ( 'fooEvent' ) ;
753765 expect ( log ) . toBe ( '' ) ;
754766 } ) ) ;
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+ } ) ;
755776 } ) ;
756777
757778
You can’t perform that action at this time.
0 commit comments