0

Я пытаюсь создать одностраничный веб-сайт, который загружает представления на основе кнопок, щелкнув по навигационной панели. Однако содержание страницы не отображается. Может ли кто-нибудь сказать мне, что происходит не так?angularjs, работающий с bootstrap navbar

Итак, у меня есть этот index.html:

<!DOCTYPE html> 

<!-- define angular app --> 
<html ng-app="scotchApp"> 

<head> 
    <!-- SCROLLS --> 
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" /> 
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.0/css/font-awesome.css" /> 

    <!-- SPELLS --> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script> 
    <script src="script.js"></script> 
    <script src="controllers/userdetailsController.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
    <script src="utils/basicUtils.js"></script> 
</head> 

<!-- define angular controller --> 
<body ng-controller="mainController"> 

<nav class="navbar navbar-default"> 
    <div class="container"> 
    <div class="navbar-header"> 
     <a class="navbar-brand" href="/">Angular Routing Example</a> 
    </div> 

    <ul class="nav navbar-nav navbar-right"> 
     <li><a href="#"><i class="fa fa-home"></i> User</a></li> 
     <li><a href="#about"><i class="fa fa-shield"></i> About</a></li> 
     <li><a href="#contact"><i class="fa fa-comment"></i> Contact</a></li> 
    </ul> 
    </div> 
</nav> 

<div id="main"> 

    <!-- angular templating --> 
    <!-- this is where content will be injected --> 
    <div ng-view></div> 

</div> 



</body> 

</html> 

Это script.js:

// create the module and name it scotchApp 
    var scotchApp = angular.module('hyprPortal', ['ngRoute']); 

    // configure our routes 
    scotchApp.config(function($routeProvider) { 
     $routeProvider 

      // route for the home page 
      .when('/', { 
       templateUrl : 'pages/home.html', 
       controller : 'mainController' 
      }) 

      // route for the about page 
      .when('/about', { 
       templateUrl : 'pages/about.html', 
       controller : 'aboutController' 
      }) 

      // route for the contact page 
      .when('/contact', { 
       templateUrl : 'pages/contact.html', 
       controller : 'contactController' 
      }); 
    }); 

    //create the controller and inject Angular's $scope 
    scotchApp.controller('mainController', function($scope) { 
     // create a message to display in our view 
     $scope.message = 'Everyone come and see how good I look!'; 
    }); 

    scotchApp.controller('aboutController', function($scope) { 
     $scope.message = 'Look! I am an about page.'; 
    }); 

    scotchApp.controller('contactController', function($scope) { 
     $scope.message = 'Contact us! JK. This is just a demo.'; 
    }); 

И это home.html:

<!doctype html> 
<html > 
<head> 
    <title>User Details</title> 
    <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script> 
    <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-route.min.js"></script> 
    <script src = "https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script> 
    <script src = "../controllers/userdetailsController.js"></script> 
    <script src = "../utils/basicUtils.js"></script> 
</head> 
<body> 
<div ng-app="hyprPortal" ng-controller="UserRegCtrl"> 
    <!--<form ng-submit = "add(USERID)"> 
     User ID:<br> 
     <input type = "text" name = "USERID" ng-model = "USERID"><br> 
     <input type = "submit" value = "Submit"> 
    </form>--> 
    <table border="1"> 
     <tr> 
      <td>{{returnName}}</td> 
      <td>{{AID}}</td> 
     </tr> 
    </table> 
</div> 
</body> 
</html> 
+0

Вам не нужно '' html', body', и 'script' теги внутри' home.html'. Вам нужен только контент. Все теги скриптов должны быть определены в 'index.html'. – theblindprophet

+0

Я создал плункер для вас, надеюсь, это поможет вам. https://plnkr.co/edit/Bvo3LkVmGNGZWxF4M66m?p=preview – Deep

+0

Избавилось от всего этого, все еще не сработало. –

ответ

1

Есть несколько вопросов с вашим кодом.

1: home.html не нужно иметь всю голову, тело, детали. 2: имя модуля должно быть scothApp и должно присутствовать только в виде ng-app = "scothApp" в index.html 3: ваш маршрут уже говорит о том, что контроллер для Home.html является mainController, поэтому вам не нужно добавлять другие cotroller с использованием ng-controller = "UserRegCtrl" в home.html.

Проверьте этот плункер на основе вашего кода.

https://plnkr.co/edit/Bvo3LkVmGNGZWxF4M66m?p=preview

var scotchApp = angular.module('scotchApp', ['ngRoute']); 
+0

Что делать, если я хочу вместо этого другого контроллера? –

+0

изменить его в самом маршруте. .when ('/', { templateUrl: 'home.html', Контроллер: 'otherController' }) – Deep

Смежные вопросы