NgbDropdown autoClose снаружи не работает

Я использую angular4 с ng-bootstrap. Я хочу закрыть раскрывающийся список, щелкнув его за пределами раскрывающегося списка (остальная часть документа). Изучив документацию, я определил, что autoClose Type: boolean | "снаружи" | "внутри". Но когда я попытался установить его как параметр config.autoClose = 'outside', мой скрипт начал показывать эту ошибку: «Тип ''outside'' не может быть назначен для типа 'boolean'».

Любые предложения или помощь по этому поводу.


person user3373970    schedule 16.08.2017    source источник


Ответы (2)


Я подозревал, что вы используете версию ng-bootstrap, которая не пока нет поддержки autoClose="outside" (она была введена совсем недавно, в 1.0.0-beta.1, см. журнал изменений: https://github.com/ng-bootstrap/ng-bootstrap/blob/master/CHANGELOG.md#100-beta1-2017-08-11 )

Однако после более тщательного изучения выяснилось, что у нас есть небольшая ошибка в ng-bootstrap, для которой я уже отправил PR: https://github.com/ng-bootstrap/ng-bootstrap/pull/1754. Это исправление будет объединено перед следующим выпуском.

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

(<any>config).autoClose = 'outside';
person pkozlowski.opensource    schedule 16.08.2017
comment
Я использую последнюю версию ng-bootstrap (@ng-bootstrap/[email protected]). - person user3373970; 16.08.2017
comment
@user3373970 user3373970 - о, я вижу - это настоящая ошибка на нашей стороне - проверьте обновленный ответ для получения более подробной информации и обходного пути. - person pkozlowski.opensource; 16.08.2017
comment
@pkozlowski-opensource Я попробовал предложенное вами решение для приведения config.autoClose = 'outside', но все равно получаю ту же ошибку. Не могли бы вы сообщить мне, когда эта проблема будет исправлена ​​​​и объединена с репо. - person user3373970; 17.08.2017
comment
@user3373970 user3373970 фактический кастинг должен быть (<any>config).autoClose = 'outside';, обновил ответ. Фактическое исправление будет частью следующего выпуска (ожидается на этой неделе). - person pkozlowski.opensource; 17.08.2017
comment
Комментарий, если это поможет кому-то сейчас, более чем через 2 года. Как ни странно, у меня такая же проблема - я на ng-bootstrap 2.0.0. Что сработало, так это использовать одинарные кавычки вокруг значения конфигурации при использовании его в качестве входных данных для компонента следующим образом: [autoClose]="'outside'" - person Faredoon; 23.01.2020

В Angular, если вы используете ng-Bootstrap. Если вы хотите, чтобы раскрывающийся список закрывался при нажатии в любой части экрана, добавьте эту строку в свой код.

[autoClose]="true"

Ваш код будет выглядеть

<div ngbDropdown class="d-inline-block" [autoClose]="true">
     <button class="btn btn-outline-primary" id="dropdownBasic1" ngbDropdownToggle>Option 1 </button>
      <button class="btn btn-outline-primary" id="dropdownBasic1" ngbDropdownToggle>Option 2 </button>
 </div>

Если не хочешь то ставь.

[autoClose]="false"
person Inamur Rahman    schedule 17.09.2019
comment
Кроме того, чтобы это работало, ваши элементы в раскрывающемся списке должны иметь директиву ngbDropdownItem. Без него работать не будет. - person BrunoElo; 09.07.2021