angularjs – bootstrap navbar有几个错误
发布时间:2020-12-17 18:08:30 所属栏目:安全 来源:网络整理
导读:我使用angular custom directive来实现bootstrap navbar.这是我的代码: "use strict";var helper = require('../helper.js')var app = angular.module('custom_directive')app.directive('tagNavbar',[function() { return { restrict: 'E',scope: { },temp
我使用angular custom directive来实现bootstrap navbar.这是我的代码:
"use strict"; var helper = require('../helper.js') var app = angular.module('custom_directive') app.directive('tagNavbar',[function() { return { restrict: 'E',scope: { },templateUrl: '/public/common/tag_navbar.html',controller: ['$scope','$window','userService',function($scope,$window,userService) { var curUrl = $window.location.pathname + $window.location.hash //client url is used in <a href>,redirect purpose $scope.signinClientUrl = helper.urlWithQuery('/auth#!/signin',{redirect:curUrl}) $scope.signupClientUrl = helper.urlWithQuery('/auth#!/signup',{redirect:curUrl}) //server url is used for rest api,like <form action> //if signout success,better to redirect to home,since some page are not authorized $scope.signoutServerUrl = helper.urlWithQuery('/auth/signout',{successRedirect:'/',failureRedirect:curUrl}) $scope.classForNavWithPath = function(path) { $scope.userService = userService //pathname for which tab to highlight,use hash if the tab has dropdown list var pathname = $window.location.pathname var hash = $window.location.hash return (pathname == path ? 'active' : '') } //todo: bug: unable to refresh page by clicking the same nav tab $scope.showSignin = ! userService.isAuthenticated() $scope.showSignup = ! userService.isAuthenticated() $scope.showSignout = userService.isAuthenticated() }]}}]) 和HTML: <div class="tag-navbar"> <nav class="my-navbar"> <div class="my-navbar-header"> <button type="button" class="my-navbar-toggle" data-toggle="collapse" data-target="#myNavbar"> <span class="my-icon-bar"></span> <span class="my-icon-bar"></span> <span class="my-icon-bar"></span> </button> <a class="my-navbar-brand" href="/#!/">Apple Fanboy</a> </div> <div class="my-navbar-collapse" id="myNavbar"> <ul class="my-navbar-nav"> <li ng-class="classForNavWithPath('/')"><a href="/#!/">Home</a></li> <li ng-class="classForNavWithPath('/article')"><a href="/article#!/">article</a></li> <li ng-class="classForNavWithPath('/profile')"><a href="/profile#!/">profile</a></li> <li ng-class="classForNavWithPath('/editor')"><a href="/editor#!/">editor</a></li> <li ng-class="classForNavWithPath('/admin')"><a href="/admin#!/">admin</a></li> </ul> <ul class="my-navbar-nav-right"> <li ng-show="showSignout"> <a ng-href="{{signoutServerUrl}}">sign out</a> </li> <li ng-show="showSignin"> <a ng-href="{{signinClientUrl}}">sign in</a> <li ng-show="showSignup"> <a ng-href="{{signupClientUrl}}">sign up</a> </li> </ul> </div> </nav> </div> 我在标题中使用它 <tag-navbar></tag-navbar> 有2个错误(或可配置的默认值?) >在移动尺寸浏览器上,导航栏默认为展开.不确定它是否是默认行为,我认为这不是大多数用户想要的 导航栏的CSS(我使用sass) .my-navbar { //Note: navbar = header + collapse @extend .navbar; @extend .navbar-default; //Note: required by navbar logic,although .container is set to body @extend .container-fluid; .my-navbar-header { @extend .navbar-header; .my-navbar-toggle { @extend .navbar-toggle; } .my-icon-bar { //it's inside toggle,but can be inside other icons as well @extend .icon-bar; } .my-navbar-brand { @extend .navbar-brand; } } .my-navbar-collapse { @extend .collapse; @extend .navbar-collapse; .my-navbar-nav { @extend .nav; @extend .navbar-nav; } .my-navbar-nav-right { @extend .my-navbar-nav; @extend .navbar-right } } } 编辑: 如果我直接使用 <div class="collapse navbar-collapse" id="myNavbar"> 它有效,但是 <div class="my-navbar-collapse" id="myNavbar"> 它不起作用. .my-navbar-collapse { @extend .collapse; @extend .navbar-collapse; } 解决方法
问题是你不应该组崩溃.出于同样的原因你不能使用data-toggle =“my-collapse”
试试这个: .my-navbar-collapse { //cannot put `collapse` and data-toggle's `collapse` here @extend .navbar-collapse; .my-navbar-nav { @extend .nav; @extend .navbar-nav; } .my-navbar-nav-right { @extend .my-navbar-nav; @extend .navbar-right } } 在导航栏中 <div class="collapse my-navbar-collapse" id="myNavbar"> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |