Подтвердить что ты не робот

Angular.js ui-router передать переменной в состояние URL

Я пытаюсь передать параметры в состояние в angular.js ui-router следующим образом:

.state('details', {
    url: '/details/:index',
    templateUrl: 'views/details.html'
})

Индекс проходит через индекс ng-repeat

 <div ng-repeat="program in programs">
            <h2>{{program.name}}</h2>

            <p>{{program.description || "No Description"}}</p>

            <p><a ui-sref="details({index: $index})">View details »</a></p>
 </div>

Мой вопрос в том, как в detail.html я читаю индекс, переданный в URL-адресе состояния?

4b9b3361

Ответ 1

Введите $ stateParams в свой контроллер.

Пример.

var myapp = angular.module('myapp', ["ui.router"])
myapp.config(function($stateProvider, $urlRouterProvider){

  // For any unmatched url, send to /route1
  $urlRouterProvider.otherwise("/route1/2")

  $stateProvider
    .state('route1', {
        url: "/route1/:index",
        templateUrl: "route1.html",
        controller: function($stateParams, $scope) {
            $scope.index = $stateParams.index 
        }
    })
    .state('route2', {
        url: "/route2",
        templateUrl: "route2.html"
    })
});