ng-View не работает в одностраничном приложении

0

Я работаю над тем, чтобы работать в Angular SPA в первый раз. И работа с некоторыми проблемами. Кажется, я не могу получить ng-view для рендеринга или маршрутизации. Кажется, он не может ни разобрать ng-view.

Структура файла

Изображение 174551

mainController.js

var propManApp = angular.module('propManApp', ['ngRoute']);

propManApp.config(function ($routeProvider){
$routeProvider
.when('/', {
    templateUrl : '../public/main.html',
    controller  : 'mainController'
})

.when('/about', {
    templateUrl : '../public/about.html',
    controller  : 'aboutController'
})

.when('#/contactUs', {
    templateUrl : '../public/contactUs.html',
    controller  : 'contactUsController'
})

.otherwise({redirectTo : 'index.html'});
});



propManApp.controller('mainController',['$scope', '$log',
function($scope, $log){
$scope.message = "Message Here!!!!!!";
}]);

propManApp.controller('aboutController',['$scope', '$log',
function($scope, $log){
$scope.aboutMessage = "About Message Here!!!!!!";
console.$log("Test");
}]);


propManApp.controller('contactUsController',['$scope', '$log',
function($scope, $log){
$scope.contactMessage = "Contact Message Here!!!!!!";
}]);

index.html

<!DOCTYPE html>
<html lang="en">
<head ng-app="propManApp">
    <title>Rental Properties</title>
 <!-- angular/  -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js">    </script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular-route.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">     </script>
<!-- bootstrap -->
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">

</head>
<body>

<nav class="navbar navbar-inverse navbar-static-top">
<div class="container-fluid">
<!-- Logo -->
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-        toggle="collapse" data-target="#mainNavBar">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
            <a href="#" class="navbar-brand">Rental PROPERTIES</a>
    </div>

    <!-- Menu Items -->
    <div class="collapse navbar-collapse" id="mainNavBar">
        <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#/about">About</a></li>
            <li><a href="#/contact">Contact</a></li>
        </ul>
    </div>

</div>
</nav>

<div class="container">
    <div ng-view></div>
</div>
</body>

main.html

<h1>{{message}}</h1> Main

about.html

<h1>{{aboutMessage}}</h1> About

Инспектор браузера:

Изображение 174551

  • 0
    Вы прочитали сообщение об ошибке? Это ясно объясняет, в чем ваша проблема.
  • 0
    Попробуйте переместить ng-app из тега head тег body .
Теги:
ng-view

1 ответ

1

Вы установили тег ng-app в head, а не в html-тег. Это означает, что ваше приложение вращается только с тегом заголовка и не содержит тег body, в котором используется ng-view.

Итак, в вашем index.html

<html lang="en" ng-app="propManApp">
<head >
    <title>Rental Properties</title>
 <!-- angular/  -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js">    </script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular-route.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js">     </script>
<!-- bootstrap -->
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">

</head>

Измените это так.

Также вы не включили mainController.js. Включите его в index.html после файла jquery.

  • 0
    Поменял это на HTML и те же проблемы. Не уверен, правильно ли я загружаю ng-route. Из того, что я видел, я но это мое первое приложение Angular.
  • 0
    Дерьмо. Я полностью пропустил это. Вы не включили mainController.js. Включить его в index.html после файла jquery
Показать ещё 8 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню