javascript - 如何用 Angular 做多个 View 来支持页眉和侧边栏?

标签 javascript angularjs ng-view

我是第一次使用 AngularJS。我已经在包含 header.html 模板的 index.html 页面中成功实现了一个 ng-view。所以它看起来像下面

enter image description here

但现在我正在创建一个仪表板 (dashboard.html)。所以,除了 header.html 之外,我还有一个左侧菜单,所以它看起来像这样:

enter image description here

我的 index.html 是这样的:

<div  ng-include="'templates/header.html'"></div>
<div class="main" id="main-no-space" >
  <div id="main-page">
    <div id="wrapper" class="container">
      <div class='container'>
        <div ng-view></div>
      </div>
    </div>
  </div>
<div  ng-include="'templates/footer.html'">

我的 dashboard.html 是这样的:

  <div class="collapse navbar-collapse navbar-ex1-collapse">
    <ul class="nav navbar-nav side-nav">
      <li class="active">
        <a ng-href="#/link1">Link 1</a>
      </li>
      <li>
        <a ng-href="#/link2">Link 2</a>
      </li>
      <li>
        <a ng-href="#/link3">Link 3</a>
      </li>
    </ul>
  </div>

最佳答案

试试这个:

angular.module('app', ['ngRoute'])
    .config(['$routeProvider', function ($routeProvider) {
    $routeProvider.
    when('/dashboard', {
        templateUrl: 'dashboard.html',
        controller: DashboardCtrl
    })
        .otherwise({
        redirectTo: '/dashboard'
    });
}]);

function DashboardCtrl() {

}
* {
    box-sizing: border-box;
}
#main:after {
    content: "";
    display: block;
    clear: both;
}
#header {
    padding: 20px;
    border: 1px solid #000;
}
#main {
    padding: 20px;
    border: 1px solid #000;
}
#sidebar {
    padding: 20px;
    border: 1px solid #000;
    float: left;
    width: 20%;
}
#content {
    padding: 20px;
    border: 1px solid #000;
    float: right;
    width: 78%;
}
#footer {
    padding: 20px;
    border: 1px solid #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.14/angular-route.js"></script>
<div ng-app="app">
    <div ng-include="'header.html'" id="header"></div>
    <div class="main" id="main-no-space">
        <div id="main-page">
            <div id="wrapper" class="container">
                <div class="container">
                    <div ng-view id="main">loading...</div>
                </div>
            </div>
        </div>
        <div ng-include="'footer.html'" id="footer"></div>
    </div>
    <script type="text/ng-template" id="dashboard.html">
        <div ng-include="'sidebar.html'" id="sidebar"></div>
        <div id="content">dashboard</div>
    </script>
    <script type="text/ng-template" id="header.html">
        header
    </script>
     <script type="text/ng-template" id="sidebar.html">
        sidebar
    </script>
    <script type="text/ng-template" id="footer.html">
        footer
    </script>
</div>

JSFiddle http://jsfiddle.net/mcVfK/928/

关于javascript - 如何用 Angular 做多个 View 来支持页眉和侧边栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29114800/

相关文章:

javascript - 切换 onClick jquery

javascript - 如何在回调中访问正确的“this”?

javascript - 新日期(毫秒)返回无效日期

javascript - Angular 在 ajax $scope 中返回字符串

javascript - HTML/CSS/JS 幻灯片中的 "Place dots"

angularjs - 从 firebase 中删除项目

javascript - Angularjs,用于Flickr图像的分页

javascript - 使用 Angular JS $route 创建简单的 SPA 时遇到问题?

javascript - ngAnimate 没有将 ng-enter 类添加到 Angular 1.2 中的 ng-view

javascript - 如何引导基于组件的 Angular 1 应用程序?