2014-06-08 11 views
15

La versione utilizzata è la seguente.
· AngularJS 1.2.16
· Bootstrap3.1.1
· AngularUI Bootstratp 0.11.0viene fatto doppio clic sul menu a discesa di Navbar.

var myApp = angular.module('app', ['ngRoute', 'ui.bootstrap']); 

<li class="dropdown"> 
<a href="#" class="dropdown-toggle" data-toggle="dropdown">menu</a> 
    <ul class="dropdown-menu" role="menu" aria-labelledby="userMenu"> 
    <li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#" class="">one</a></li> 
    <li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#" class="">two</a></li> 
    <li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#" class="">three</a></li> 
    </ul> 
</li> 

Se svolge, un click sarà necessario per discesa di Navbar due volte. (A meno che non faccia doppio clic sul menu, uno, due e tre non sono visualizzati.)

Quindi, quando si abbassava la versione dello script da utilizzare, era in grado di utilizzare in modo soddisfacente.
· 3.1.0 bootstrap.min.js
· 0.10.0 ui-bootstrap-tpls.min.js

voglio che insegnano come se si svolge, è possibile visualizzare da uno scatto.

risposta

45

La risposta breve:

Non dovrebbe usare le bootstrap.js con la libreria angolare-ui-bootstrap.js. Entrambe le librerie stanno lavorando per visualizzare/nascondere il menu a discesa sull'evento click.

La risposta lunga:

La classe discesa menu imposta l'attributo di visualizzazione a nessuno. La libreria boostrap.js allega un evento click agli elementi con un attributo data-toggle = "dropdown". L'evento click quindi verifica se l'elemento genitore ha una classe aperta. Se la classe aperta esiste, rimuovila, altrimenti aggiungi la classe aperta. La classe 'open' imposta l'attributo di visualizzazione css per bloccare su elementi figlio con una classe di menu a tendina ignorando così il valore originale di none.

La libreria angular-ui-bootstrap.js aggiunge/rimuove anche la classe aperta sull'evento di attivazione/disattivazione allo stesso modo. Quindi una libreria aggiunge la classe aperta, l'altra libreria la rimuove prontamente, ottenendo così l'attributo di visualizzazione css originale di none nella classe del menù a tendina.

+0

È che se si utilizza angular-ui-bootstrap.js e che non si utilizza il file bootstrap.js. Grazie per la risposta. – otera

+0

Brillante! Questo mi stava facendo impazzire. – iTrout

+0

non hai idea di quanto tempo ho perso cercando di risolvere questo problema. Grazie! – sscarduzio

Problemi correlati