如何将stateParams传递给角度控制器?

时间:2016-07-21 11:43:00

标签: angularjs

我尝试在控制器中定义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的id来定义消息的选择消息和聊天内容。

1 个答案:

答案 0 :(得分:0)

解决方案: 我已定义$ state而不是$ stateParams,并检查$ state.params.id以获取当前状态。