学习一些Angular - 我一直坚持路由
这是我的角度配置
var meanApp = angular.module('carz', ['ngRoute']);
meanApp.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'home.html',
controller: 'mainCtrl'
})
.when('/red', {
templateUrl: 'red.html',
controller: 'redCtrl'
});
});
这是我的链接
<a href="#">Home</a>
<a href="#red">Red</a>
当我加载我的节点应用程序时,我被定向到
http://localhost:8080/#!/
我的角度控制器在ng-view
标签
但是我无法使用上面的链接从一个控制器切换到另一个控制器。
如果我选择红色标记,则我的网址会额外添加#jending
http://localhost:8080/#!/#red
请注意,如果我手动更改为
http://localhost:8080/#!/red
我的控制器发生了变化并且它有效,所以我为什么要获得额外的#
感谢您的帮助
答案 0 :(得分:3)
自AngularJS 1.6以来,路由发生了重大变化:
$ location hash-bang网址的哈希前缀已从空字符串更改为&#34;&#34;到了爆炸&#34;!&#34;。
(见https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
解决方案:
要么开始使用#!代替 # 或设置$ locationProvider接受只使用#,如下所示:
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);