例如,如果我尝试转到localhost:8080并在其中运行我的AngularJS应用程序,则我的URL中间会出现一个奇怪的#号,我已重定向到http://localhost:8080/#/home。我不知道此#的来源,但我怀疑它与我在$ stateProvider中定义的URL有关。
这是$ stateProvider代码:
//STATE HANDLER
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('newAlarm', {
url: '/newAlarm',
views: {
'': {templateUrl: '/templates/newAlarmPage.html'},
'header@newAlarm':{templateUrl: '/templates/header.html'},
'newAlarmForm@newAlarm':{templateUrl: '/templates/newAlarmForm.html'}
},
controller: 'NewScheduleCtrl'
})
//to be changed
.state('home', {
url: '/home',
views: {
'': {templateUrl: '/templates/homePage.html'},
'header@home':{templateUrl: '/templates/header.html'}
},
controller: ''
});
//end of to be changed
$urlRouterProvider.otherwise('home');
}]);
有什么想法吗?
最佳答案
从single page applications上的Wikipedia文章中:
尽管可以使用位置哈希来提供该页面的内容,但该页面在过程的任何时候都不会重新加载,也不会将控件转移到另一页面。
应用程序中单独逻辑页面的感知和可导航性
使用哈希可以使角度(和其他SPA框架)在不重新加载页面的情况下路由url。
相关问题:
How can I use urls in a single page application?
Removing the hashtag from angularjs urls symbol