Получение # в URL от angularJS $ stateProvider

0

Я получаю странное # в середине моего URL-адреса, например, если я пытаюсь перейти на localhost: 8080, где у меня работает приложение AngularJS, я перенаправлен на http://localhost: 8080/#/home. Я не понимаю, откуда это происходит, но я подозреваю, что это имеет какое-то отношение к URL-адресам, которые я определяю в моем $ stateProvider.

Вот код $ 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');
}]);

Есть предположения?

Теги:
url-routing
angularjs-routing

2 ответа

2

Из статьи в Википедии о приложениях с одной страницей:

Страница не перезагружается в любой момент процесса, а также не переносит передачу на другую страницу, хотя хеш местоположения может использоваться для обеспечения восприятия и навигации отдельных логических страниц в приложении

Использование хэша позволяет угловым (и другим сетям SPA) маршрутизировать URL-адреса без перезагрузки страницы.

Связанные вопросы:

  • 0
    Итак, я прочитал, что AngularJS может использоваться для создания не только одностраничных приложений. В коде, который я разместил, я использую одно приложение AngularJS для определения двух совершенно разных страниц / путей. Это хорошая практика?
  • 0
    Если все они являются частью одного и того же сайта / приложения, это нормально ... одностраничные приложения должны определяться потребностями пользователей. Так что, если это работает для ваших пользователей, то это хорошо, и я вижу, что это работает хорошо для страниц на верхнем уровне вашего приложения, которые предоставляют жесткие ссылки (полное обновление страницы), которые имеют подразделы, которые ведут себя как одностраничные приложения.
0

Вы можете отключить хэш, если хотите.

app.config(['$stateProvider','$urlRouterProvider','$locationProvider',
  function($stateProvider, $urlRouterProvider,$locationProvider) {

  //ROUTING

  $locationProvider.html5Mode(true);

}]);

Затем добавьте в свой индекс html файл:

<!doctype html>
<html>
  <head>

    //...

    <base href="/">

  </head>
  //...
</html>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню