javascript - Angular 导航栏

标签 javascript html css angularjs twitter-bootstrap

我正在尝试将我的 Bootstrap 导航栏变成一个 Angular 元素,这样我就可以更改 Controller 中的属性,而不是重写每个页面。导航栏不会显示,也不会抛出任何错误

HTML调用

 <body ng-app="appHeaderApp">
  <div class="main" ng-controller="appHeaderController">
  <div ng-repeat="tab in tabs">
  <app-header info="tab"></app-header>
  </div>

appHeaderApp

var app = angular.module("appHeaderApp", []);

appHeaderController

app.controller('appHeaderController', ['$scope', function($scope) { 
  $scope.myNavTabs = [
{ 
    tab1: 'link',
  tab2: 'more links',
  tab3: 'different link',
  tab4: 'another link',
  tab5: 'last link'
}
 ];
   /*$scope.returnEvents = function(index) { 
  'I have been in,' + $scope.myinfo[index].userEvents; 
 };*/
 }]);

headerjs.html

  <nav class="navbar navbar-default">
 <div class="container-fluid">
  <div class="navbar-header">
     <button type="button" class="navbar-toggle collapsed" data-   toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
     <span class="icon-bar"></span>
     <span class="icon-bar"></span>
     </button>
     <a class="navbar-brand" href="#">Brand</a>
     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav">
           <li class="active"><a href="#"> {{info.tab1}} <span class="sr-only">(current)</span></a></li>
           <li><a href="#"> {{info.tab2}} </a></li>
           <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> {{info.tab3}} <span class="caret"></span></a>
              <ul class="dropdown-menu">
                 <li><a href="#"> {{info.tab4}} </a></li>
                 <!-- put the login form here -->
              </ul>
           </li>
        </ul>
     </div>
  </div>

appHeader.js

app.directive('appHeader', function() { 
 return { 
restrict: 'E', 
scope: { 
  info: '=' 
}, 
templateUrl: 'js/directives/headerjs.html' 
   }; 
 });

最佳答案

你的 ng-repeat应该有 <div ng-repeat="tab in myNavTabs">而不是标签,因为您已将数组分配给 $scope.myNavTabs 而不是 $scope.tabs。


$scope.myNavTabs = [
{ 
    tab1: 'link',
  tab2: 'more links',
  tab3: 'different link',
  tab4: 'another link',
  tab5: 'last link'
}
 ];

关于javascript - Angular 导航栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349648/

相关文章:

javascript - Flask 应用程序 - 如何将 javascript 文件链接到网站

javascript - 在 <canvas> 元素上实现流畅的素描和绘图

html - CSS - 将文本保留在图像下方

javascript - 如何在我的网站上显示表情符号?

javascript - 被选元素在哪些元素中?

javascript - 如何在 JavaScript 中声明一个全局变量

javascript - 检查 JQuery 每个函数中的最后一个元素

html - 消除导航栏导致的水平滚动

css - li 元素在 Internet Explorer 中未垂直对齐

css - 使用CSS在悬停时覆盖透明图像