Angularjs $rootScope.$broadcast when watch position 将消息从工厂传递到指令

Angularjs $rootScope.$broadcast when watch position to pass message from factory to directive

我想创建将 navigator.geolocation.watchPosition 并且每次都会广播到 rootscope 然后指令将监听 $scope.$on 的工厂。途中是否存在任何性能问题或更好的方法?安装此应用程序的设备将始终处于移动状态。

广播总是很忙。
不是广播,而是在 rootScope 上发出并在 rootScope 上侦听。当您的指令范围被销毁时,从范围中删除侦听器。

工厂:

$rootScope.$emit('eventName:emit');

指令:

var destroyFn = $rootScope.$on('eventName:emit', listernFn);
$scope.$on('$destroy', destroyFn);

将名称 eventname 更改为 eventname:emit 以使事件特定于侦听 $emit 事件。