javascript - ng-View 无法在单页应用程序中工作

标签 javascript html angularjs ng-view

我正在努力让 Angular SPA 第一次工作。并遇到一些问题。我似乎无法让 ng-view 正确渲染或路由。似乎无法解析 ng-view

文件结构

enter image description here

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

浏览器检查器:

enter image description here

最佳答案

您已将 ng-app 标记设置为 head 而不是 html 标记。这意味着您的应用程序仅围绕 head 标签展开,并且不包含使用 ng-view 的 body 标签。

所以在你的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。将其包含在 jquery 文件之后的 index.html 中。

关于javascript - ng-View 无法在单页应用程序中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38939667/

相关文章:

javascript - 使用特定步骤对数组的某些元素进行打乱

css - 具有动态宽度(CSS)的中心固定div

Javascript 导致 DOM 元素被删除

angularjs - 如果使用 $dirty 和 $pristine 对表单进行任何更改,则不允许进行导航

javascript - 使用纯 JavaScript 监听具有特定内容的 POST 事件

javascript - 覆盖或隐藏 box-shadow 的顶部以便显示 3 个边?

javascript - Grails-在remoteFunction中将JS变量用于 Controller 和 Action args

javascript - 将格式化文本 block 转换为 PHP 数组

html - 如何使图层在 slider 旋转中消失?

css - ionic 如何将 ionic 内容对齐到页面底部