2015-01-30 5 views
1

Я смущен. В течение долгого времени я использую stateParams как средство поиска stateParams внутри templateUrl.

Теперь я попытался сделать то же самое в решении, и он не работает. На самом деле ничего не происходит, когда я использую stateParams.

Однако случайно я обнаружил, что могу использовать $ stateParams в решении, и он работает.

Может кто-нибудь сказать мне, в чем разница, и зачем мне использовать stateParams в шаблонахUrl и $ 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; 
      } 
     } 

    }; 

ответ

2

Я создал working example here, показывая, что $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> 

Проверьте это here

+0

Вы верны. $ stateParameters есть в решении, и он работает нормально. Но мне интересно, почему в шаблоне можно использовать параметры stateParameters, но не в разрешении. Должен ли я использовать $ stateParameters в шаблоне. Просто действительно интересно, какая разница между ними и почему одна работает в одном месте, а не в другом. – Alan2

+0

Проверьте мой обновленный плункер http://plnkr.co/edit/4JWbKm1jPvSlvuBmiSJU?p=preview - другой шаблон для другого параметра контента (8 - NUMBER) –

Смежные вопросы