Nano Hash - криптовалюты, майнинг, программирование

Как управлять аккордеоном директив в Angular

Я создаю большую форму ввода в angular. Чтобы сделать приложение удобным для пользователя, я разбил форму на множество разных разделов. Мне нужно, чтобы каждый раздел находился в другой группе аккордеона. Каждый раздел должен пройти проверку, и пользователь не может продолжить работу, пока не будет выполнена требуемая проверка поля.

На главной странице приложения я добавил разметку для аккордеона. Каждый раздел в аккордеоне является пользовательской директивой. Директива содержит разметку для каждой группы (форма ввода и проверка), а также содержит код для подключения к соответствующим службам для сохранения состояния в базе данных.

Образец кода

<uib-accordion close-others="true">
    <uib-accordion-group heading="Person Details" is-open="heading1.isOpen">
        <div person-details></div>
        <button class="btn btn-default btn-sm pull-right" ng-click="heading2.isOpen = !heading2.isOpen">Next <i class="glyphicon glyphicon-chevron-right"></i></button>
    </uib-accordion-group>
    <uib-accordion-group heading="Address Details" is-open="heading2.isOpen">
        <div address-details></div>
        <button class="btn btn-default btn-sm pull-right">Next <i class="glyphicon glyphicon-chevron-right"></i></button>
    </uib-accordion-group>
</uib-accordion>

Сложность в том, как управлять тем, какая группа аккордеона открыта в любое время. В приведенном выше примере кода у меня есть кнопка «Далее», чтобы открыть следующую группу аккордеона. Однако эта кнопка должна находиться в самих директивах, чтобы управлять проверкой. Проблема в том, что директивы должны знать, как управлять аккордеоном, чтобы изменить активную группу аккордеона - как-то всплыть.

Пожалуйста, у кого-нибудь есть мысли по этому поводу? Если вы думаете, что я иду по этому пути неправильно, пожалуйста, дайте мне знать.

Спасибо


Ответы:


1

Вам нужно использовать переменную области действия в ваших директивах, которая имеет двустороннюю привязку, например, к heading1.isOpen. Таким образом, директива сможет изменить состояние открытия своей родительской директивы.

Просто найдите угловые документы для директив и изолированных переменных области видимости.

04.12.2015
  • Супер, спасибо за наводку. Я читал привязку, но не был уверен, что полностью ее понял. Сейчас пытаюсь реализовать. Я отмечу это как ответ, если это сработает. Спасибо еще раз 04.12.2015
  • Хороший материал, я не могу получить доступ к угловым документам, так как они не в сети, иначе я бы предоставил ссылку 04.12.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..