OpenSeadragonselection: динамически переключать состояние выделения
В настоящее время я внедряю средство просмотра отсканированных страниц, используя 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", чтобы включить / отключить режим выбора.
Я хочу привязать обработчик Angular ng-click к некоторому элементу, чтобы переключить режим выбора моего зрителя. Но я не могу понять, как изменить параметр, а затем заставить зрителя действительно обновить состояние.
1 ответ
Вы должны инициализировать плагин выбора следующим образом:
var selection = viewer.selection(options);
Затем вы можете изменить состояние выбора с помощью любого из них:
selection.enable();
selection.disable();
selection.toggleState();
В качестве альтернативы, если вы не можете сохранить объект выбора и получить к нему доступ, где вам нужно, вы все равно можете получить его из средства просмотра, не передавая параметры, подобные этой:
var selection = viewer.selection();
Но вы должны быть уверены, что выбор был начат до этого. В противном случае вы бы создали 2 экземпляра выбора и имели бы проблемы.
Вы также можете проверить, включен ли выбор с помощью логического свойства selection.isSelecting