Я пытаюсь связать AngularJS с плагином JavaScript - OpenSeaDragon, потому что я должен делать аннотации на изображении OpenSeaDragon, и я пробовал что-то вроде этого
angular.element(document.body).scope().$on('addAnnotation', function(e, data){
self._viewer.viewport.fitBounds(new OpenSeadragon.Rect(data))
});
И внутри контроллера:
$scope.addAnnotation= function (data) {
$scope.$root.$emit('addAnnotation', data);
}
И, на мой взгляд,
ng-click="addAnnotation(data)"
но я получаю ошибку
Uncaught TypeError: Cannot read property '$on' of undefined
Вы пытаетесь получить angular.element(document.body).scope()
который не undefined
. Чтобы получить scope
элемента, этот элемент должен иметь область видимости. Попробуйте использовать его на элементе DOM, который привязывается к контроллеру.
angular.element(document.getElementById("openSeaDragon"))
который является экземпляром Open Sea Dragon