在bootstrap中如何保持多页导航栏重新加载它

时间:2016-06-24 15:48:21

标签: javascript html angularjs twitter-bootstrap

我正在使用Bootstrap和angular js开发一个管理员应用程序。我正在使用导航栏作为标题。对于每个链接,它应该加载不同的页面。如何在不重新加载导航栏的情况下加载每个页面。

附上我的索引文件代码。我已经在每个文件中复制了导航栏代码(所有site.html)。我知道这不是一个合适的解决方案。我可以知道,有什么选择可以做到这一点。

<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
    href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script
    src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script
    src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>

    <nav class="navbar navbar-default ">
        <div class="container-fluid">
            <div class="navbar-header">
                <a class="navbar-brand" href="#"> Radar </a>
            </div>
            <ul class="nav navbar-nav">
                <li class="active"><a href="index.html">Dashboard</a></li>
                <li><a href="pages/site1.html">site1</a></li>
                <li><a href="pages/site2.html">site2</a></li>
                <li><a href="pages/site3.html">site3</a></li>
                <li><a href="pages/site4.html">site4</a></li>
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li><a href="#"><span class="glyphicon glyphicon-user"></span>
                        Hi Anand </a></li>
                <li><a href="#"><span class="glyphicon glyphicon-log-in"></span>
                        Login</a></li>
            </ul>
        </div>
    </nav>


</body>
</html>

3 个答案:

答案 0 :(得分:1)

您可以使用添加了div的代码创建母版页。然后在div中加载我们的其他页面。

...

<head>
<title></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
    href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script
    src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script
    src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
</head>
<body>

<nav class="navbar navbar-default ">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#"> Radar </a>
        </div>
        <ul class="nav navbar-nav">
            <li class="active"><a href="index.html">Dashboard</a></li>
            <li><a href="pages/site1.html">site1</a></li>
            <li><a href="pages/site2.html">site2</a></li>
            <li><a href="pages/site3.html">site3</a></li>
            <li><a href="pages/site4.html">site4</a></li>
        </ul>
        <ul class="nav navbar-nav navbar-right">
            <li><a href="#"><span class="glyphicon glyphicon-user"></span>
                    Hi Anand </a></li>
            <li><a href="#"><span class="glyphicon glyphicon-log-in"></span>
                    Login</a></li>
        </ul>
    </div>
</nav>

<div id="pagediv">

</div>

javascript示例:

document.getElementById("pagediv").innerHTML='<object type="text/html" data="pages/site1.html" ></object>';

答案 1 :(得分:1)

制作标题并为其附加控制器。并且在标题之后保留单独页面的出口。这样,所有链接都会在插座中加载模板,标题将不会重新加载。

答案 2 :(得分:1)

使用ui路由器维护状态。它具有父状态和子状态的概念。在您的代码中,父将是navbar,而子将是site.html页面。 因此,所有网站页面都会有通用的导航栏。

https://scotch.io/tutorials/angular-routing-using-ui-router