2016-06-12 109 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