Связывание AngularJS с плагином JavaScript
Я пытаюсь связать 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
1 ответ
Решение
Вы пытаетесь получить angular.element(document.body).scope()
который undefined
, Для того, чтобы получить scope
элемента, этот элемент должен иметь область видимости. Попробуйте использовать его для элемента DOM, который привязывается к контроллеру.