angular.js маршрутизация и состояние

Я пытаюсь изменить стандартный пользовательский модуль meanjs. Я добавил простой маршрут:

state('users', {
            url: '/users/:username',
            templateUrl: 'modules/users/views/view-profile.client.view.html'
        });

И на мой взгляд:

data-ng-controller="ViewProfileController" data-ng-init="findUser()"

Я также ввел $stateParams в мой контроллер. Так по моему ViewProfileController - findUser функция, когда я пишу это:

console.log($stateParams.username)

Я ожидаю получить параметр имени пользователя. Но это возвращается undefined,

Когда я установил маршрут таким образом,

state('users', {
            url: '/users/:username',
            template: function ($stateParams){
                return $stateParams.username;
            }
        });

возвращает имя пользователя. Я не знаю, что не так или отсутствует. Есть идеи?

редактировать: это был мой полный код контроллера

'use strict';

angular.module('users').controller('ViewProfileController', ['$scope', '$http', '$stateParams', '$location', 'Users', 'Authentication', 
function($scope, $http, $location, Users, Authentication, $stateParams) {
    $scope.user = Authentication.user;


    $scope.findUser = function () {
        console.log($stateParams);
        ...
    };
}
]);

2 ответа

Решение

Ваши зависимости не совпадают - список зависимостей должен соответствовать параметрам в функции контроллера в том же порядке:

'use strict'; 
angular.module('users')
.controller('ViewProfileController', ['$scope', '$http', '$stateParams', '$location', 'Users', 'Authentication', 
  function($scope, $http, $stateParams, $location, Users, Authentication) { 
    $scope.user = Authentication.user; 
    $scope.findUser = function () { 
      console.log($stateParams); 
    }; 
  }
]);

Я должен использовать контроллер вместо шаблона.

Замените в своем коде template: к следующему фрагменту:

controller: function($stateParams){
    console.log('username: '+$stateParams.username);
}

Вы можете увидеть полный пример этой функции здесь

Другие вопросы по тегам