$ state.go не работает

0

У меня есть сценарий, когда при нажатии на поиск объекта мне нужно загрузить другое состояние

Вот мой html-код

<span class="item-title" ng-click="fnViewProfile()">
      <span> {{item.name}} </span>
</span>

ниже мой код контроллера:

$scope.fnViewProfile = function() {
        $state.go("ViewProfile", {
            "id": 10215
        });
    }

В моем app.js у меня есть функция разрешения, где я сделал вызов ajax, чтобы получить данные до того, как html загрузится

.state('ViewProfile', {
            parent: 'home',
            url: '/ViewProfile:id',
            templateUrl: 'views/ViewProfileView.html',
            controller: 'ProfileViewCtrl',
            resolve: {
                profile: function(DashboardService, $stateParams, $scope) {
                    debugger;
                    var userId = $stateParams.id;
                    var userData;
DashboardService.fnGetUser(userId).then(function(oResponse) {
                        userData = oResponse.data;

                    })
return userData;
                }
            }

В контроллере состояния ViewProfile я передаю службу профиля

angular.module('talentGraphApp')
.controller('ProfileViewCtrl', function($scope, $state, DashboardService, profile) {
    debugger;
    $scope.profile = profile;
    console.log(profile);
});

Но я не могу получить профиль в консоли.

Я не понимаю, куда я иду

Любая помощь будет оценена по достоинству.

  • 1
    Вам нужно return внутрь обещания. return oResponse.data;
  • 0
    Почему вы вводите $scope в resolve ?
Показать ещё 6 комментариев
Теги:

1 ответ

1

В resolve вы возвращаете userData до того, как он был назначен внутри обратного вызова обетования, поэтому он не определен, когда вы передаете его контроллеру

Верните обещание вместо этого

Изменить на

 resolve: {
      profile: function(DashboardService, $stateParams) {                      
             var userId = $stateParams.id;            
             return DashboardService.fnGetUser(userId).then(function(oResponse) {
                        // return as resolved value
                        return oResponse.data;    
             });    
        }
}

Также не существует $scope в конфигурации маршрутизации

Ещё вопросы

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