【发布时间】:2017-02-05 18:10:52
【问题描述】:
ng-view 没有显示页面并且路由似乎不起作用,但它正在浏览器控制台/网络中加载 angular-route.min.js。 文件结构为文件夹-> css、字体、js、页面。根目录中有 2 个文件,它们是 app.js 和 index.html,而 pages 文件夹内还有 2 个文件,它们是 main.html 和 second.html,它们应该被添加到 ng-view 部分但不会加载.
当点击 main.html 内容的链接时,它会返回 http://127.0.0.1/main 并完全忽略 /pages 文件夹
**更新代码,让第一页加载其内容,但第二页没有,并且控制台中没有错误,所以假设我的 href 路径错误?
标题脚本
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.min.js"></script>
<script src="//code.angularjs.org/1.6.1/angular-route.min.js"></script>
<script src="app.js"></script>
HTML
<div class="row">
<a href="#">Main Content</a>
<a href="#/second">Second Content</a>
</div>
<div class="row">
<div class="col-md-12">
<div ng-view></div>
</div>
</div>
<hr>
</div>
JS
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(function($routeProvider) {
$routeProvider
.when('/', {
templateURL: 'pages/main.html',
controller: 'mainController'
})
.when('/second', {
templateURL: 'pages/second.html',
controller: 'secondController'
})
});
myApp.controller('mainController', ['$scope', function($scope) {
}]);
myApp.controller('secondController', ['$scope', '$log', function($scope, $log) {
}]);
【问题讨论】:
-
为什么你的 index.html 中有 2 个 ng-view?
-
你还没有实现
html5Mode因此需要在url中使用#/ -
您在 index.html 中添加了
ng-app ="myApp"吗? -
是的:
-
你尝试调试了吗?你的控制台在说什么?