我有一个项目,通过转到
,本地工作的URL工作正常localhost:9000 /
网址将变为
我做了一些改变,现在转到
http://localhost:9000/#!/(带有感叹号)
此外,其他网址变得怪异。如果我尝试点击一个链接,例如,转到仪表板。它不需要我。相反,它使URL像
/#!/#%2Fdashboard
之后没有任何反应。我做错了什么,怎么可能解决这个问题?我不能显示任何代码,因为我不知道我哪里出错了。我按照以下教程,然后发生了问题。也许错误就在那里?
我添加了我的.config,我设置了路线。
.config(function ($routeProvider, $httpProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
controllerAs: 'vm',
activetab: 'main'
})
.when('/about', {
templateUrl: 'views/about.html',
controller: 'AboutCtrl',
controllerAs: 'vm',
activetab: 'about'
})
.when('/faq', {
templateUrl: 'views/faq.html',
controller: 'FaqCtrl',
controllerAs: 'vm',
activetab: 'faq'
})
.when('/dashboard', {
templateUrl: 'views/dashboard.html',
controller: 'DashboardCtrl',
controllerAs: 'vm',
activetab: 'dashboard'
})
.when('/logout', {
templateUrl: 'views/main.html',
controller: 'LogoutCtrl',
controllerAs: 'vm'
})
.otherwise({
redirectTo: '/'
});
$httpProvider.interceptors.push(['$q', '$window', '$localStorage', function($q, $window, $localStorage) {
return {
'request': function (config) {
config.headers = config.headers || {};
if ($localStorage.globals) {
config.headers.access_token = $localStorage.globals.currentUser.token;
}
return config;
},
'responseError': function(response) {
switch(response.status) {
case 403:
//$window.location = '/'
break;
case 404:
//$window.location = './404.html';
break;
case 500:
$window.location = './500.html';
break;
}
return $q.reject(response);
}
};
}]);
答案 0 :(得分:9)
这实际上不是一个错误。
用于$ location hash-bang网址的默认哈希前缀已从空字符串('')
更改为bang ('!')
。
如果您确实不想使用hash-prefix,则可以通过向应用程序添加配置块来恢复以前的行为:
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix('');
}]);
答案 1 :(得分:1)
我已成功使用
解决了这个问题$locationProvider.hashPrefix('');
这似乎是1.6.0 angularjs中的一个错误
答案 2 :(得分:0)
可以确认这是Angular 1.6.0中的错误。修复了我自己的同样问题,回到Angular 1.5.9。