Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs $stateParams返回未定义的_Angularjs_Angular Ui Router_Angularjs Controller - Fatal编程技术网

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视图还不熟悉,所以这对我来说有点混乱。我最终制作了一个新的控制器,它不再是子状态,现在工作正常。