Как передать stateParams в угловой контроллер?

0

Я пытаюсь определить stateParams в контроллере, но он возвращает мне пустой объект {}

Мой app.js:

angular.module('testApp', ['ui.router','ngResource'])
.config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('app', {
            url:'/',
            views: {
                'header': {
                    templateUrl : 'views/header.html'
                },
                'messages': {
                    templateUrl : 'views/messages.html',
                    controller  : 'MessageController'
                },
                'chat': {
                    templateUrl : 'views/chat.html',
                    controller  : 'ChatController'
                },
                'footer': {
                    templateUrl : 'views/footer.html'
                }
            }
        })
        .state('app.chat', {
            url: ':id'
        });
        $urlRouterProvider.otherwise('/');
})

Мой controller.js:

angular.module('testApp')

.controller('IndexController', ['$scope', '$stateParams', function($scope,$stateParams) {

    $scope.chosenMessage = $stateParams;

}]);

И мой шаблон:

        <div ui-view="messages" class="col-xs-6"></div>
        <div ui-view="chat" class="col-xs-6"></div>

Мне нужен идентификатор из StateParams для определения выбранного сообщения и содержимого чата для сообщения.

  • 0
    используйте $ state.params или $ stateParams.id
  • 0
    @Rejs $ state.params не работает, а $ stateParams.id возвращает undefined
Показать ещё 2 комментария
Теги:

1 ответ

0
Лучший ответ

Решение: я определил $ state вместо $ stateParams и проверил, чтобы $ state.params.id получил текущее состояние.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню