例如,如果我尝试转到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

08-04 14:24