Связывание AngularJS с плагином JavaScript

0

Я пытаюсь связать 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
  • 0
    Можете ли вы поставить ссылку на plunkr. Использование кажется неправильным
  • 0
    На самом деле это было бы очень трудно положить в плункер, так как он является частью веб-приложения, но я нашел решение благодаря @ronapelbaum
Теги:
openseadragon

1 ответ

0
Лучший ответ

Вы пытаетесь получить angular.element(document.body).scope() который не undefined. Чтобы получить scope элемента, этот элемент должен иметь область видимости. Попробуйте использовать его на элементе DOM, который привязывается к контроллеру.

  • 0
    Так, например, это должен быть angular.element(document.getElementById("openSeaDragon")) который является экземпляром Open Sea Dragon
  • 0
    что-то в этом роде, да.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню