Выпадающий список Angular 2 Bootstrap (ngx-bootstrap/ng2-bootstrap) не работает

Мне кажется, что выпадающие списки Angular Bootstrap работают только в одной части моего приложения. Я не уверен, почему это работает там, а не в других местах. В моем модуле я импортирую с помощью BsDropdownModule.forRoot() точно так же, как это работает. Я пробовал вставлять HTML из нескольких их примеров... Ничего. Я знаю, что у меня это работало раньше, и не помню, чтобы что-то менялось, что имело к этому отношение.

Я не получаю никаких ошибок, и я не совсем уверен, как продолжить устранение этой проблемы. Я заметил проблему с ng2-bootstrap, поэтому обновился до ngx-bootstrap. Та же проблема.


person BBaysinger    schedule 13.04.2017    source источник


Ответы (4)


Убедитесь, что ваши версии Angular и Bootstrap совместимы. Это произошло, когда я использовал Angular 4 с ng2-bootstrap 1.6.x. Еще лучше, вместо ng2-bootstrap вы должны использовать ngx-bootstrap. Чтобы выпадающее меню работало, добавьте атрибут container:

<div class="btn-group" dropdown  container="body"></div>
person devakone    schedule 21.06.2017
comment
Я не уверен, что это был правильный ответ на этот конкретный вопрос, но, чувак, ты спас мне жизнь после 1,5 дней попыток внедрить ввод в Ang4, я бы проголосовал за тебя 100 раз, если бы только мог - person Steven; 08.09.2017
comment
Если вы скопируете и вставите свой ответ на мой вопрос, я могу принять его и проголосовать за него: stackoverflow.com/questions/46112808/ - person Steven; 08.09.2017
comment
Подойдет, рад, что помогло! - person devakone; 09.09.2017

Я понял проблему. Выпадающие списки действительно работали. Проблема заключалась в том, что по какой-то причине y-позиция (вверху) для .dropdownMenu помещала его за пределы контейнера, в котором он находился, где его нельзя было увидеть. Я до сих пор не уверен, почему ЭТО происходит, но, по крайней мере, мне есть с чем работать.

person BBaysinger    schedule 13.04.2017

я смог заставить это работать с [email protected], но когда я переключился на 4.0.0-alpha.6, я не смог заставить работать раскрывающийся список. Не уверен, что пошло не так, но мне пришлось добавить BsDropdownModule в контекст, добавив к моим провайдерам (у меня уже был BsDropdownModule.forRoot()).... (не совсем уверен в деталях того, что я сломал в конце).

НО обнаружил, что добавление BsDropdownModule в модуль, где я вызывал меню, тогда это сработало.

person Ben    schedule 13.05.2017
comment
Спасибо за этот лакомый кусочек - привел меня к решению. Я до сих пор не совсем понимаю, почему это нужно импортировать как в корень, так и в соответствующий функциональный модуль, но это поможет (в функциональном модуле нет forRoot()) - person jb44; 07.07.2017

Вам нужно добавить BsDropdownModule.forRoot() в импорт AppModule и BsDropdownModule (не .forRoot()!) в подмодуль, который использует раскрывающиеся списки начальной загрузки.

person Cameron Forward    schedule 14.10.2019