ng-event-scope
v0.0.6
Published
Backbone style events in Angular.
Downloads
5
Maintainers
Readme
ng-event-scope
Backbone style events in Angular.
This extends the $rootScopeProvider to create a $scope isolate with the $emit and $broadcast methods decorated to split events on :
colons.
Variations on implementation can be found in the $event-scope gist.
A usage sample that should really be a test
ngModule.run(function($rootScope) {
var $scope = $rootScope.$new();
$scope.$on("a:b:c", function(){
console.log(arguments[1], "\t==\t", "$scope.$on(a:b:c)");
});
$scope.$on("a:b*", function(){
console.log(arguments[1], "\t==\t", "$scope.$on(a:b*)");
});
$scope.$on("a*", function(){
console.log(arguments[1], "\t==\t", "$scope.$on(a*)");
});
$rootScope.$on("a:b:c", function() {
console.log(arguments[1], "\t==\t", "$rootScope.$on(a:b:c)");
});
$rootScope.$on("a:b*", function() {
console.log(arguments[1], "\t==\t", "$rootScope.$on(a:b*)");
});
$rootScope.$on("a*", function() {
console.log(arguments[1], "\t==\t", "$rootScope.$on(a*)");
});
$scope.$emit("a:b:c", "$scope.$emit(a:b:c)");
$scope.$broadcast("a:b:c", "$scope.$broadcast(a:b:c)");
$rootScope.$emit("a:b:c", "$rootScope.$emit(a:b:c)");
$rootScope.$broadcast("a:b:c", "$rootScope.$broadcast(a:b:c)");
});
Which outputs—with slightly more text and different tabbing:
$scope.$emit(a:b:c) == $scope.$on(a:b:c)
== $eventScope.$on(a:b:c)
== $scope.$on(a:b*)
== $eventScope.$on(a:b*)
== $scope.$on(a*)
== $eventScope.$on(a*)
$scope.$broadcast(a:b:c) == $scope.$on(a:b:c)
== $scope.$on(a:b*)
== $scope.$on(a*)
$eventScope.$emit(a:b:c) == $eventScope.$on(a:b:c)
== $eventScope.$on(a:b*)
== $eventScope.$on(a*)
$eventScope.$broadcast(a:b:c) == $eventScope.$on(a:b:c)
== $scope.$on(a:b:c)
== $eventScope.$on(a:b*)
== $scope.$on(a:b*)
== $eventScope.$on(a*)
== $scope.$on(a*)