2014-02-04 4 views
0

Я использую ngRoute для считывания параметров URL. Проблема в том, что я не могу получить идентификатор во время работы кода. Однако, если попытаться назвать его функцией, я получаю значения из url.Угловые, проблемы с кодовой последовательностью ngRoute

Как вы думаете, есть способ получить параметр url, когда я делаю запрос Survey.get()?

ответ

1

Один из способов решения этой проблемы - подождать до того, как будет запущена трансляция $ routeChangeSuccess, а затем для инициализации вашего $ scope.survey.

т.е. что-то вроде этого

.controller('PageCtrl', function ($scope,$rootScope, $routeParams) { 
    $rootScope.$on('$routeChangeSuccess',function(){ 
     $scope.survey = Survey.get({surveyId: $routeParams.id}); //doesn't work 
    }); 
    this.add = function (pageId, pageIndex) { 
     console.log($routeParams.id); //works 
    }; 

    $scope.Page = this; 
} 
0

Скорее всего ваш контроллер вызывается только один раз при старте приложения. Вот почему ваш routeeconfig еще не установлен и возвращает undefined. Вы уверены, что задаете контроллер для своего вида в вашем маршрутном файле?

app.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/home', { 
     templateUrl: 'partials/home.html', 
     controller: 'HomeCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/home' 
     }); 
    }]); 
+0

У меня есть это в моей конфигурации '$ routeProvider.when ('/ бэкенд/обзоры /: идентификатор/сборки', { \t \t \t контроллер: 'PagesCtrl' \t \t});' – sarunast

Смежные вопросы