无法使AngularJS路由工作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使AngularJS路由工作相关的知识,希望对你有一定的参考价值。
我确信有一些简单的东西让我失踪,但我似乎无法找到它。我有一个超级简单的Angular JS SPA。文件夹结构如下:
的index.php - js - app.js - 页面 - home.html - post.html - know.html
在index.php我有:
<html class="no-js" lang="en" ng-app="postApp">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>Post Safety App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="/postsafetyapp/">
</head>
<body ng-controller="mainController">
<main id="main">
<div ng-view></div>
</main>
<!-- Angular JS -->
<script src="js/vendor/angular.min.js"></script>
<script src="js/vendor/angular-route.min.js"></script>
<!-- Custom JS -->
<script src="js/app.js"></script>
</body>
</html>
在home.html我有:
<div class="home buttons">
<div class="button button-1-of-2">
<a href="#share" class="button__link" id="button_share">
<span class="button__icon"><i class="fa fa-share"></i></span>
<span class="button__text">SHARE</span>
</a>
</div>
<div class="button button-1-of-2">
<a href="#know" class="button__link" id="button_share">
<span class="button__icon"><i class="fa fa-graduation-cap"></i></span>
<span class="button__text">KNOW</span>
</a>
</div>
</div>
这是app.js中的代码:
// create the main module
var postApp = angular.module("postApp", ['ngRoute']);
// configure our routes
postApp.config(function($routeProvider, $locationProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'pages/home.html',
controller : 'mainController'
})
// route for the know page
.when('/know', {
templateUrl : 'pages/know.html',
controller : 'knowController'
})
// route for the share page
.when('/share', {
templateUrl : 'pages/share.html',
controller : 'shareController'
});
// use the HTML5 History API
// $locationProvider.html5Mode({
// enabled: true,
// requireBase: false
// });
});
home.html页面加载得很好,URL显示如下:
http://localhost/postsafetyapp/#!/
如果我单击共享按钮,则URL将更改为:
http://localhost/postsafetyapp/#!/#share
但观点并没有改变。
如果我取消注释$ locationProvider代码,则URL将变为:
http://localhost/postsafetyapp/(home.html页面加载没问题)
单击按钮,URL变为:
http://localhost/postsafetyapp/#share(查看不变)
我在本地服务器上运行WAMPSERVER。任何帮助都会很棒!
答案
您可以将控制器保留在app config中
请将代码与plnkr链接进行比较
qazxsw poi在plunker中使用代码。
如果您想查看网址以查看网页的路由方式,请使用以下链接
索引页面中的href
Seperate plnkr window (without code)
app app中定义的控制器:
<ul class="nav navbar-nav navbar-right">
<li><a href="#!/home"><i class="fa fa-home"></i> Home</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>
以上是关于无法使AngularJS路由工作的主要内容,如果未能解决你的问题,请参考以下文章