L'effondrement de ne pas travailler en ng-bootstrap et angulaire 4 application pour la barre de navigation de navigation bouton
Je suis en utilisant angulaire 4 et bootstrap 4 beta 2 et ng-bootstrap pour mon application et également à l'aide de ng-bootstrap.
J'ai ajouté la barre de navigation de la de bootstrap, documentation exemple.
Le code ressemble à ceci:
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarTogglerDemo02" aria-controls="navbarTogglerDemo02" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarTogglerDemo02">
<ul class="navbar-nav mr-auto mt-2 mt-lg-0">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link</a>
</li>
<li class="nav-item">
<a class="nav-link disabled" href="#">Disabled</a>
</li>
</ul>
<form class="form-inline my-2 my-lg-0">
<input class="form-control mr-sm-2" type="search" placeholder="Search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
</nav>
J'ai également ajouté bootstrap styles angulaire-cli.json. Ce code ressemble à ceci:
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.min.css",
"styles.css"
],
De la barre de bouton sur l'affichage mobile ne répond pas sur son clic. et quand j'ai essayé d'inspecter le même: je suis arrivé à savoir que "effondré" la classe n'est pas ajouté au bouton de clic.
- semble que vous avez oublié de l'ajouter JQuery/bootstrap.js
- je suis à l'aide de ng-bootstrap où jquery n'est pas nécessaire
Vous devez vous connecter pour publier un commentaire.
J'ai une solution maintenant. Juste à l'aide de ng-bootstrap permet de résoudre votre problème.
Fichier Html:
Composant fichier ts:
ajouter le fichier css de bootstrap dans angulaires-cli.json:
Ajouter ceci dans le module principal:
Cela fonctionne comme un charme.
Le principal avantage de l'utilisation de ng-bootstrap est, vous pouvez éliminer les dépendances d'autres bibliothèques js comme jquery et popper et vous pouvez également écrire vos composants pour bootstrap.
npm install --save @ng-bootstrap/ng-bootstrap
Voir ici lienÀ l'aide de ng-bootstrap (ou dans mon cas, la ngx-bootstrap) certainement simplifié les choses que je n'ai pas de soucis à propos de jQuery et popper. Comme actuellement accepté de répondre mentionne.
Cela n'a toutefois pas à résoudre mon problème d'emblée que j'ai raté les détails importants. Après avoir ngx-bootstrap et en cours d'exécution, vous pouvez commencer par la liaison de la
collapse
propriété de lanavbar-collapse
div à une variable dans votre fichier de composant:Qui à elle seule ne suffit pas, et vous avez réellement besoin de modifier cette variable vous-même (c'est la partie que j'ai raté) en se liant à l'événement click de votre activation /désactivation du bouton:
(click)="isCollapsed = !isCollapsed"
étant fondamentaux de la pièce manquante pour moi. Cette lie de l'événement onClick du bouton de votre isCollapsed variable de basculement lorsque cliqué, et donc un réglage de lacollapse
propriété de votre barre de navigation de manière appropriée.Voici le jsfiddle j'ai trouvé la fin m'a aidé à comprendre mon erreur:
jsFiddle lien externe
De Travail Barre De Navigation
ng-bootstrap
Prise En Main
Composants
{{ component }}