1
我想從我的Angular JS應用程序的URL中刪除「#」。它目前部署在我的位置機器上的tomcat服務器上,並可通過如8081這樣的自定義端口訪問。
我查看了各種文章,並在不同的線程上修復了這個問題。但一切都徒勞無功。
當我嘗試使用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
});
}
}
]);
...
...
我已在index.html
的標籤中添加base href="/"
標籤。
我不知道如果我要做的tomcat的結束一些改變,使其工作還是有一些其他的問題..
請幫助。
感謝
它沒有工作。在進行了修改後,我收到以下錯誤: –
angular.js:68未捕獲錯誤:[$ injector:modulerr]未能實例化模塊myAngularApp,原因如下: 錯誤:[$ injector:unpr]未知提供程序:$ routeParams http:/ /errors.angularjs.org/1.4.9/$injector/unpr?p0=%24routeParams –
刪除routeParams,檢查更新的答案,因爲它沒有在配置中使用,您可能需要它在控制器中 – Aks1357