Связывание 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, который привязывается к контроллеру.

Другие вопросы по тегам