2016-10-14 2 views
1

Я пытаюсь удалить «#» из URL моего приложения Angular JS. В настоящее время он развернут на сервере tomcat на моей машине определения местоположения и доступен через пользовательский порт, например: 8081.

Я рассмотрел различные статьи, а также различные потоки в stackoverflow, чтобы исправить проблему. Но все шло напрасно.

Я получаю следующую ошибку (от консоли разработчика браузера), когда пытаюсь получить доступ к домашней странице своего приложения, используя localhost:8081/myAngularApp.

Uncaught Error: [$injector:modulerr] Failed to instantiate module myAngularApp due to: 
TypeError: Cannot read property 'html5Mode' of undefined 
    at http://localhost:8081/myAngularApp/js/angularMyApp.js:34:31 
    ..... 
    ..... 

Если удалить $locationProvider.html5Mode({...}); то я могу получить доступ к приложению с хэш как http://localhost:8081/myAngularApp/#/

Вот это отрывок из моего файла JS, который настраивает Угловой модуль (myAppMain.js):

... 
... 
myAngularApp.config([ '$routeProvider', '$locationProvider', 
     function($routeProvider, $routeParams, $locationProvider) { 

      $routeProvider 

      // route for the login page 
      .when('/login', { 
       templateUrl : 'pages/login.html', 
       controller : 'loginController' 
      }) 

      // route for the dashboard page 
      .when('/dashboard', { 
       templateUrl : 'pages/dashboard.html', 
       controller : 'dashboardController' 
      }); 

      // route for the FAQ page 
      .when('/faq', { 
       templateUrl : 'pages/faq.html', 
       controller : 'faqController' 
      }) 

      // route for the About us page 
      .when('/aboutUs', { 
       templateUrl : 'pages/aboutUs.html', 
       controller : 'aboutUsController' 
      }); 

      .otherwise({redirectTo: '/' 
      }); 

      if(window.history && window.history.pushState){ 
       $locationProvider.html5Mode({ 
         enabled: true, 
         requireBase: false 
       }); 
      } 
     } 
    ]); 

... 
... 

Я уже добавил base href="/" тег в теге головы index.html.

Я не уверен, если я должен сделать некоторые изменения в TOMCAT конце, чтобы сделать его работу или есть некоторая другая проблема ..

Пожалуйста, помогите.

Благодаря

ответ

1
myAngularApp.config([ '$routeProvider', '$locationProvider', function($routeProvider, $routeParams, $locationProvider) { 

должен быть

myAngularApp.config([ '$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { 
+0

Это не сработало. После внесения изменений я получаю следующую ошибку: –

+0

angular.js: 68 Ошибка при отсутствии: [$ injector: modulerr] Не удалось создать модуль myAngularApp из-за: Ошибка: [$ injector: unpr] Неизвестный поставщик: $ routeParams http://errors.angularjs.org/1.4.9/$injector/unpr?p0=%24routeParams –

+0

Удалить маршрутParams, проверить обновленный ответ, так как он не используется в config, вы можете потребовать его в контроллере – Aks1357