Я работаю над тем, чтобы работать в Angular SPA в первый раз. И работа с некоторыми проблемами. Кажется, я не могу получить ng-view
для рендеринга или маршрутизации. Кажется, он не может ни разобрать ng-view
.
Структура файла
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
Инспектор браузера:
Вы установили тег 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.
ng-app
из тегаhead
тегbody
.