The gaPermalink service could broadcast a gaPermalinkChange event on the $rootScope. The context menu directive would listen to gaPermalinkChange events and update the contextPermalink, crosshairPermalink, and qrCodeUrl on its scope when receiving gaPermalinkChange events. I've never used "scope events" so this requires investigations, but this is certainly a mechanism we will need eventually. Maybe we should do that in a separate PR.