ngg*_*lez 7 angularjs angularjs-controller angular-ui-router
我定义了这些路线:
.state('sport',
url: '/sport'
templateUrl: '/templates/sport'
controller: 'SportCtrl'
)
.state('sport.selected'
url: '/:sport'
templateUrl: '/templates/sport'
controller: 'SportCtrl'
)
Run Code Online (Sandbox Code Playgroud)
我让这个控制器试图使用sport.selected状态给出的运动参数.
angular.module('myApp')
.controller('SportCtrl', ['$scope', 'ParseService',
'$stateParams', function ($scope, ParseService, $stateParams) {
var sportURL = $stateParams.sport;
...
});
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我在控制器中调用$ stateParams.sport时,它返回undefined,即使我认为我在路由中定义了它.为什么会这样?
谢谢你的帮助!
当您访问URL时/sport/12,SportCtrl将实例化两次:一次用于状态sport,一次用于状态sport.selected.对于第一个状态,没有与状态相关的参数,因此$stateParams.sport未定义.
请注意,对状态和子状态使用相同的模板是很奇怪的.您将在同一模板的ui-view div中嵌入模板.