angularjs - link - router active angular




Angular UI, Bootstrap Navbar Collapse e Javascript (2)

Il mio particolare problema ruotava attorno all'ambito. Sto usando ng-repeat per scorrere i miei elementi del menu in modo che navbarCollapsed non sia accessibile nell'ambito child ng-repeat .

La risoluzione era di accedere alle variabili dell'ambito genitore. Semplice come:

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

Spero che questo aiuti chiunque abbia lo stesso problema.

Ho problemi con UI-Router in molti modi. Non capisco come interagisca con altri quadri.

Vale a dire, sto cercando di implementare il modulo di compressione della barra di navigazione di Bootstrap 3, visto di seguito:

<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>

Questo è direttamente dal sito Web Bootstrap e funziona bene quando si trova all'interno della propria pagina .html.

Il problema è quando lo inserisco in una vista UI-Router. L'azione collassante non funziona più - sto indovinando perché la funzione "data-target" non è in qualche modo in grado di trovare il suo obiettivo.

Come si usa Bootstrap 3 con l'interfaccia utente angolare? Il pacchetto Bootstrap UI angolare non ha un modulo navbar.

La risposta qui sotto è buona. Ecco un URL di riferimento di Twitter Bootstrap Navbar con AngularJS - Collapse Not Functioning .


È necessario sostituire le proprietà js native di bootstrap con le direttive ui-bootstrap (notare ng-click e 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>

Imposta il valore iniziale nel controller:

$scope.navbarCollapsed = true;

Modificare:

Nuove versioni del prefisso ui-bootstrap per tutti i componenti . Adeguare il tuo codice di conseguenza, ad es. collapse -> uib-collapse .







angular-ui-router