Я получаю сообщение Ошибка: предоставлена недопустимая опция clickable
. теперь, когда я разделил существующие два на две отдельные части, обрабатываемые контроллерами angular
Мне нужно знать, как установить параметр «кликабельный» в одном контроллере с помощью кнопки/элемента, который находится в шаблоне другого контроллера.
КОНТЕКСТ
Я перемещаю инструмент загрузки в angular, и изначально все делалось с помощью одного статического шаблона. Был элемент html «над» контейнером зоны сброса, который используется для «кликабельного» значения, чтобы открыть диалоговое окно файла для зоны сброса, если пользователь не хочет перетаскивать в область/контейнер зоны сброса.
Поскольку эта кнопка теперь является частью другого контроллера с собственным шаблоном, я не могу сразу ссылаться на нее стандартными методами (имя класса было тем, что использовал старый код, но идентификатор элемента тоже не работает)
Предположительно, «ControlsController», который обрабатывает кнопки вверху, не загружен или недоступен по иным причинам, когда DropzoneController пытается создать экземпляр Dropzone. Поэтому мне нужно найти другой способ сделать кнопку доступной для нажатия.
У меня есть глобальный класс angular 'service', доступный сейчас, или я мог бы использовать что-то вроде $rootScope или $broadcast/$emit, но я не совсем уверен, как это сделать и убедиться, что оба элемента доступны при необходимости. Я предполагаю, что, вероятно, смогу установить опцию «кликабельной» dropzone после ее создания, но я не совсем уверен, как это сделать с двух отдельных контроллеров, каждый из которых обрабатывает две разные части пользовательского интерфейса, особенно когда я не могу быть полностью уверен в любом контроллере, когда/если другой экземпляр создан или если он еще доступен.
Я попытался использовать $onInit() для создания новой Dropzone() (в DropzoneController), но все равно пишет Ошибка: предоставлена недопустимая опция clickable
Есть ли способ вытащить определение элемента из шаблона элементов управления внутри компонента/контроллера? Или есть лучший способ вызвать поведение между одним контроллером и другим?
ФРАГМЕНТЫ КОДА
ControlsController привязан к компоненту/элементу в верхней части пользовательского интерфейса.
DropzoneController прикреплен к div, окружающему список файлов изображений пользователя, отображаемых с другими контроллерами angular внутри этого div:
<div id="ImageSelector" class="ImageSelectorS3Window S3FullWindowHeight">
<selector-controls></selector-controls>
<div class="ImageSelector List Unselectable dropzone" id="ImageSelectorList" ng-controller="DropzoneController">
<user-folder ng-repeat="(folder, pseudodir) in subdirs" folder="folder" pseudodir="pseudodir"></user-folder>
<uploaded-image ng-repeat="(filename, image) in uploadedImages" filename="filename" image="image"></uploaded-image>
</div>
</div>
шаблон элементов управления выглядит следующим образом и загружается вместо селекторов-элементов управления в приведенном выше шаблоне:
<div class="ImageSelector" id="ImageSelectorControl">
<div class="UIBar">
<img id="ISUpFolder" class="UIButton Transparent" src="images/arrow86.png" title="Go Up a Folder">
<img id="ISRefresh" class="UIButton" src="images/refresh7.png" title="Refresh">
<img id="ISCreateFolder" class="UIButton" src="images/new6.png" title="Create Folder">
<img class="UIButton ImageSelectorUploadButton dz-clickable" src="images/mini.png" title="Upload File(s)">
<img id="ISMove" class="UIButton Transparent" src="images/custom-move.png" title="Move Selected">
<img id="ISRename" class="UIButton Transparent" src="images/interface19.png" title="Rename Selected">
<img id="ISDelete" class="UIButton Transparent" src="images/mini2.png" title="Delete Selected">
<img id="ISHelp" class="UIButton" src="images/question3.png" title="Help">
</div>
<div id="ImageSelectorFolder" class="ImageSelectorFolder" title="Main">Folder: Main</div>
</div>
Текущее значение в параметрах Dropzone для clickable — «.ImageSelectorUploadButton».