Подтвердить что ты не робот

Angular Пользовательский интерфейс, Bootstrap Navbar Collapse и Javascript

У меня проблемы с UI-Router по-разному. Я не понимаю, как он взаимодействует с другими средами.

А именно, я пытаюсь внедрить модуль сбрасывания модуля Bootstrap 3, как показано ниже:

<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">Project name test</a>
    </div>
    <div class="collapse navbar-collapse">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Home</a></li>
        <li><a href="#about">About</a></li>
        <li><a href="#contact">Contact</a></li>
      </ul>
    </div><!--/.nav-collapse -->
  </div>
</div>

Это прямо с сайта Bootstrap, и он отлично работает, когда он находится на собственной странице .html.

Проблема заключается в том, когда я вставляю его в представление UI-Router. Действие сжимания больше не работает - я предполагаю, потому что функция "target-target" каким-то образом не может найти свою цель.

Как использовать Bootstrap 3 с Angular UI? Пакет Angular UI Bootstrap не имеет навигационного модуля.

Ответ ниже хорош. Вот ссылка URL Twitter Bootstrap Navbar с AngularJS - Collapse Not Functioning.

4b9b3361

Ответ 1

Вы должны заменить исходные js-свойства bootstrap на директивы ui-bootstrap (обратите внимание на ng-click и collapse):

<nav class="navbar navbar-default" role="navigation">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" ng-click="navbarCollapsed = !navbarCollapsed">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="#">
        <!-- your branding here -->
      </a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" collapse="navbarCollapsed">
      <!-- your normal collapsable content here -->
    </div>
</nav>

Задайте начальное значение в контроллере:

$scope.navbarCollapsed = true;

Edit:

Новые версии ui-bootstrap префикс для всех компонентов. Соответственно отрегулируйте свой код, например. collapseuib-collapse.

Ответ 2

Моя особая проблема вращалась вокруг области. Я использую ng-repeat для прокрутки моих пунктов меню, поэтому navbarCollapsed недоступен в области ng-repeat.

Резолюция заключалась в доступе к переменным родительской области. Просто:

ng-click="$parent.navbarCollapsed = !$parent.navbarCollapsed"

Надеюсь, это поможет любому, кто имеет ту же проблему.