OpenSeadragonselection: динамически переключать состояние выделения

0

В настоящее время я реализую средство просмотра отсканированных страниц с использованием OpenSeadragon и плагина Selection (https://github.com/picturae/openseadragonselection), чтобы пользователь мог выбрать часть страницы.

Я добавил настраиваемые элементы управления для увеличения/уменьшения масштаба и переключения между ними, которые вы можете выбрать, или если вы хотите увеличить изображение. Все идет нормально.

Но у меня возникают проблемы динамически, в моем коде, чтобы изменить состояние выбора.

Я инициализирую своего зрителя в соответствии с:

var options = {
    showNavigator: true,
    toggleButton: 'toggle-selection',
    zoomPerClick: 2.0,
    element: 'myElement',
    url: <url to image>
};

var viewer = OpenSeadragon(options);

Это инициализирует зрителя, как я ожидаю, и все денди. Я могу щелкнуть элемент с id = "toggle-selection", чтобы включить/отключить режим выбора.

Я хочу привязать обработчик углового ng-click к некоторому элементу, чтобы переключить режим выделения моего зрителя. Но я не могу понять, как изменить параметр, а затем заставить зрителя обновить состояние.

  • 0
    Вы упаковываете OSD в пользовательскую директиву? Ваша кнопка должна жить вне этой директивы?
Теги:
openseadragon

1 ответ

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

Вы должны инициализировать плагин выбора следующим образом:

var selection = viewer.selection(options);

Затем вы можете изменить состояние выбора любым из них:

selection.enable();
selection.disable();
selection.toggleState();

В качестве альтернативы, если вы не можете сохранить объект выделения и получить доступ к нему там, где вам нужно, вы все равно можете получить его у зрителя без прохождения следующих параметров:

var selection = viewer.selection();

Но вы должны быть уверены, что выбор был начат до этого. В противном случае вы создали бы 2 экземпляра экземпляра и имели бы проблемы.

Вы также можете проверить, включен ли выбор с помощью selection.isSelecting логического свойства. selection.isSelecting

  • 0
    Спасибо, это были функции, для которых я как-то не смог найти документацию.

Ещё вопросы

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