Angular 路线 - URL 中的额外#
Angular Route - Extra # in URL
学习一些东西 Angular - 我被困在路由上
这是我的 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/#!/
我的 angular 控制器在 ng-view
标签内按预期工作
但是我无法使用上面的链接从一个控制器切换到另一个控制器。
如果我select红色标签我的URL添加了一个额外的#becoming
http://localhost:8080/#!/#red
注意如果我手动改成
http://localhost:8080/#!/red
我的控制器改变了并且可以正常工作,所以为什么我要得到额外的#
感谢您的帮助
自 AngularJS 1.6 以来,路由发生重大变化:
The hash-prefix for $location hash-bang URLs has changed from the empty string "" to the bang "!".
(见https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
解决方案:
要么开始使用#!代替 #
或者将 $locationProvider 设置为仅使用 # 接受,如下所示:
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);
学习一些东西 Angular - 我被困在路由上
这是我的 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/#!/
我的 angular 控制器在 ng-view
标签内按预期工作
但是我无法使用上面的链接从一个控制器切换到另一个控制器。
如果我select红色标签我的URL添加了一个额外的#becoming
http://localhost:8080/#!/#red
注意如果我手动改成
http://localhost:8080/#!/red
我的控制器改变了并且可以正常工作,所以为什么我要得到额外的#
感谢您的帮助
自 AngularJS 1.6 以来,路由发生重大变化:
The hash-prefix for $location hash-bang URLs has changed from the empty string "" to the bang "!".
(见https://github.com/angular/angular.js/blob/master/CHANGELOG.md)
解决方案:
要么开始使用#!代替 # 或者将 $locationProvider 设置为仅使用 # 接受,如下所示:
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);