2016-06-12 158 views
1

我已經配置了一個途徑,並嘗試將參數傳遞給控制器​​:

app.js

.config(function($stateProvider, $urlRouterProvider) { 
    $stateProvider 
    .state('spot', { 
     url: "/spot/:param", 
     templateUrl: "templates/spot.html", 
     controller: "SpotCtrl" 
    }); 
    $urlRouterProvider.otherwise('/'); 
}); 

控制器:

angular.module('spotx.controllers') 
    .controller('SpotCtrl', ['$scope', '$routeParams', 
    function($scope, $routeParams) { 

    $scope.do = function() { 
    console.log($routeParams.param); 
    }; 

}]) 

的網址是/#/ spot/1111,但是如果我開啓do-function,我會得到undefined在控制檯中。

回答

4

$routeParams適用於ngRoute路由器,而非angular-ui-router。

你需要$stateParams ...看到UI路由器文檔

我驚訝,除非你有包含在網頁都路由器腳本並ngRoute也注入了模塊中你沒有得到一個未知的提供程序錯誤

+0

我已經包含了angular-route.min.js並將ngRoute注入到我的應用程序中。 – rakete

+0

所以你有2個路由器在頁面中?如果使用UI路由器,則不需要'ngRoute' – charlietfl

+0

您知道我使用的是UI路由器嗎? – rakete