Skip to content

Instantly share code, notes, and snippets.

@Jorshasaur
Last active May 23, 2017 02:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Jorshasaur/7587694 to your computer and use it in GitHub Desktop.
Save Jorshasaur/7587694 to your computer and use it in GitHub Desktop.
Observer pattern implementation in Angular. This factory dispatches messages to controllers, directives, or other services.
module.directive "someDirectiveDispatcher", (Messenger)->
return{
restrict: "E"
template: "<h1>Test</h1>"
controller: ($scope)->
$scope.elementClickEvent = ()->
Messenger.call Messenger.REFRESH_SOMETHING
}
module.factory "Messenger", ($rootScope)->
messenger = {}
messenger.message = ""
messenger.call = (msg_type, message)->
@message = message
@broadcast(msg_type)
messenger.broadcast = (msg_type)->
$rootScope.$broadcast msg_type
messenger.REFRESH_SOMETHING = "refresh_something"
return messenger
module.directive "someDirective", (Messenger)->
updateCode = ()->
console.log "update this thing!"
return{
restrict: "E"
template: "<h1>Test</h1>"
link: ($scope, element, attrs)->
$scope.$on Messenger.REFRESH_SOMETHING, ()->
updateCode()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment