Angularjs $stateParams返回未定义的
我定义了这些路线:Angularjs $stateParams返回未定义的,angularjs,angular-ui-router,angularjs-controller,Angularjs,Angular Ui Router,Angularjs Controller,我定义了这些路线: .state('sport', url: '/sport' templateUrl: '/templates/sport' controller: 'SportCtrl' ) .state('sport.selected' url: '/:sport' templateUrl: '/templates/sport' controller: 'SportCtrl' ) 我让
.state('sport',
url: '/sport'
templateUrl: '/templates/sport'
controller: 'SportCtrl'
)
.state('sport.selected'
url: '/:sport'
templateUrl: '/templates/sport'
controller: 'SportCtrl'
)
我让这个控制器尝试使用sport.selected state提供的:sport参数
angular.module('myApp')
.controller('SportCtrl', ['$scope', 'ParseService',
'$stateParams', function ($scope, ParseService, $stateParams) {
var sportURL = $stateParams.sport;
...
});
出于某种原因,当我在控制器中调用$stateParams.sport时,它返回undefined,尽管我认为它是在路由中定义的。
为什么会这样
谢谢你的帮助 当您访问URL
/sport/12
时,SportCtrl
将被实例化两次:一次用于状态sport
,一次用于状态sport.selected
。对于第一个状态,没有与状态关联的参数,因此未定义$stateParams.sport
请注意,对状态和子状态使用相同的模板是非常奇怪的。您将在同一模板的ui视图div中嵌入该模板。谢谢,我对使用ui视图还不熟悉,所以这对我来说有点混乱。我最终制作了一个新的控制器,它不再是子状态,现在工作正常。