4
我試圖觸發控制器中的函數內部的angularJS路由,但它會拋出「未捕獲的TypeError:無法讀取未定義的屬性'路徑'」。無法真正看到我錯過了$位置注入的位置,猜測它是原因。Angularjs路由:無法讀取未定義的屬性「路徑」
var gameApp = angular.module('gameApp', ['ngRoute']);
gameApp.config(function($routeProvider, $locationProvider, $provide) {
$locationProvider.html5Mode(true);
$routeProvider
// route for the home page
.when('/', {
templateUrl : 'home.html',
controller : 'mainController'
})
// route for the game page
.when('/game', {
templateUrl : 'game.html',
controller : 'gameController'
})
// route for the game over page
.when('/game-over', {
templateUrl : 'game-over.html',
controller : 'mainController'
})
// default
.otherwise({
redirectTo: '/'
});
});
我的遊戲控制器的一部分,當我使用路由器
gameApp.controller('gameController', ['$scope', '$location', function($scope, $location){
function gameLost($location){
var check = false;
console.log ('You lose! Your score is ')
$location.path('/game-over');
}])
謝謝,這肯定有助於擺脫錯誤的。將$ location作爲函數參數傳遞給調用該函數的地方也會做同樣的事情。然而,路由不會發生。如果您或任何人有任何想法,我將不勝感激。 – vitalym 2014-09-19 10:32:04
我得到了這個「http:// localhost:8000 /#!/ game-over」爲什麼這個 - >'/#!/'? – Benyamin 2018-01-24 05:09:53
@Benyamin如果你不使用歷史模式('$ locationProvider.html5Mode(true)'),那麼後備將是散列模式'#'或'#!'。 https://docs.angularjs.org/guide/$location – dfsq 2018-01-24 08:51:04