Angularjs 带ui路由器的stateParams与$stateParams?

Angularjs 带ui路由器的stateParams与$stateParams?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我很困惑。很长一段时间以来,我一直在使用stateparms作为一种在templateUrl中查找stateparms的方法 现在我下定决心也试着这么做,但没有成功。事实上,当我使用stateparms时,什么都不会发生 然而,我偶然发现我可以在解析中使用$stateParams,并且它可以工作 有人能告诉我有什么区别吗?为什么我需要在templateUrl中使用stateParams,在解析中使用$stateParams var auth = { name: 'auth'

我很困惑。很长一段时间以来,我一直在使用stateparms作为一种在templateUrl中查找stateparms的方法

现在我下定决心也试着这么做,但没有成功。事实上,当我使用stateparms时,什么都不会发生

然而,我偶然发现我可以在解析中使用$stateParams,并且它可以工作

有人能告诉我有什么区别吗?为什么我需要在templateUrl中使用stateParams,在解析中使用$stateParams

   var auth = {
        name: 'auth',
        url: '/Auth/:content',
        templateUrl: function (stateParams) {
            var page = 'app/auth/partials/' + stateParams.content + '.html';
            return page;
        },
        controller: function ($scope, authService) {
            $scope.aus = authService;
        },
        resolve:
        {
            init: function ($stateParams) {
                var x = 99;
                return true;
            }
        }

    };
我已经创建了,显示在解析中可以访问
$statePrams

// States
$stateProvider
  .state('auth', {
      url: "/auth/:content",
      templateUrl: 'tpl.html',
      controller: 'AuthCtrl',
      resolve : {
        init : ['$stateParams' , function($stateParams){
          return { resolved: true, content: $stateParams.content };
        }]
      }
  })
控制器

.controller('AuthCtrl', ['$scope', 'init', function ($scope, init) { 
  $scope.init = init;
}])
这可能是电话

<a href="#/auth/8">auth/8</a>
<a href="#/auth/xyz">auth/xyz</a>


检查它

您是正确的$在resolve中有stateParameters,它可以正常工作。但我想知道为什么可以在模板中使用stateParameters,而在解析中不使用stateParameters。我应该在模板中使用$stateParameters吗。只是想知道两者之间的区别是什么,为什么一个在一个地方工作而不是在另一个地方。检查我更新的plunker-不同的模板以获得不同的内容参数(8是数字)